UISearchDisplayController的全屏背景截取iOS 7中的触摸事件

我有一个UITableview不占用整个屏幕( 截图 )。 在iOS 6中一切正常。但在iOS 7中,当用户search时,search结果表占据整个视图( 屏幕截图 )。

为了解决这个问题,我尝试手动设置框架,如本答案所述 。 外观现在是正确的( 截图 ),但是现在当显示search结果表时,左上方的“<”button不会接收到轻击事件。

看来searchResultsTableView增加了一个截取触摸事件的全屏背景视图。 为了certificate这一点,我将这段代码添加到didShowSearchResultsTableView

  controller.searchResultsTableView.superview.backgroundColor = [UIColor blueColor];` 

这个截图确认了我的假设。

我如何解决这个问题,让“<”button接收点击事件? 我想避免修改controller.searchResultsTableView.superview以便我的更改不会在未来版本的iOS中打破。

在iOS 7中发生了什么变化导致了这种行为开始发生?

我仍然在寻找更好的解决scheme,但目前我的解决scheme是在viewControllers viewDidLayoutSubviews告诉你的视图移动到前面。 代码看起来像这样。

 - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; [self.view bringSubviewToFront:self.navigationBar]; }