UINavigationController中的UITableViewContoller与UISearchController后面的按钮错误

时间:2015-09-17 21:51:09

标签: ios uitableview uisearchcontroller

我们有一个带UITableViewController的UINavigationController。我们有一个UISearchController来过滤表中的项目列表。当我们点击一​​个单元格时,它会导航到细节。但是当我们向后导航时,就好像UISearchBar位于内容的顶部...而不是在表头中,它现在位于表的顶部。我们怎样才能使它表现为表头。

func buildSearchBar() {
    self.searchController.searchResultsUpdater = self
    self.searchController.hidesNavigationBarDuringPresentation = false
    self.searchController.dimsBackgroundDuringPresentation = false
    self.definesPresentationContext = true
    self.searchController.searchBar.sizeToFit()
    self.tableView.tableHeaderView = searchController.searchBar
}

编辑添加:我们将所有UINavigationBar外观设置为半透明= NO;这是代码行,似乎为我们打破了它。这对其他人来说听起来不错吗?

[UINavigationBar appearance].translucent = NO;

1 个答案:

答案 0 :(得分:0)

我有类似的问题。将以下行添加到视图控制器的viewDidLoad方法中(在您的问题中发布的代码中为self)。

self.definesPresentationContext = true;

这解决了我的问题。