我们有一个带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;
答案 0 :(得分:0)
我有类似的问题。将以下行添加到视图控制器的viewDidLoad
方法中(在您的问题中发布的代码中为self
)。
self.definesPresentationContext = true;
这解决了我的问题。