如何从查看和更新UI中删除iOS 11搜索栏
在xcode 9中,当我将搜索栏放在视图中时,它会自动移动其余的UI。 当我尝试从视图中删除搜索栏时,我得到一个黑色空间,而不是UI被纠正。 我正在使用的行是:self.navigationItem.searchController = nil。 我尝试了很多东西,但是我不知道如何在删除搜索栏后更正UI。 只有当我移动到另一个视图控制器,并且没有搜索栏的情况下,用户界面再次正确无误。 我在这里错过了什么?
码:
@IBAction func searchIconPressed(_ sender: UIBarButtonItem) {
//ios 11
if #available(iOS 11.0, *) {
if self.navigationItem.searchController == nil {
self.navigationItem.searchController = self.searchController
self.searchController.isActive = true
}
else {
self.navigationItem.searchController?.isActive = false
self.navigationItem.searchController = nil
}
}
//when ios 9-10
else {
if self.navigationItem.titleView == nil {
self.navigationItem.titleView = self.searchController.searchBar
self.searchController.isActive = true
}
else {
self.navigationItem.titleView = nil
}
}
}
}
从视图中删除搜索栏并使UI再次向上移动的答案:
self.navigationItem.searchController?.isActive = false
let search = UISearchController(searchResultsController: nil)
self.navigationItem.searchController = search
self.navigationItem.searchController = nil
在这里为Objective C
[self.navigationItem.searchController setActive:NO];
UISearchController *nilSearch = [[UISearchController alloc] initWithSearchResultsController:nil];
self.navigationItem.searchController = nilSearch;
self.navigationItem.searchController = nil;
链接地址: http://www.djcxy.com/p/40591.html
上一篇: How to remove iOS 11 search bar from view and update UI
下一篇: equals and circular references: how to resolve infinite recursion?