我有一个导航栏,当第一次显示屏幕时,上面没有搜索栏。我触发并在导航栏中显示搜索栏,但我想知道如何向后隐藏搜索栏并再次显示导航栏标题。
我创建搜索栏如下:
_searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.searchBar.placeholder = nil;
[self.searchController.searchBar sizeToFit];
//self.tableView.tableHeaderView = self.searchController.searchBar;
self.sharedNavigationItem.titleView = _searchController.searchBar;
self.searchController.delegate = self;
self.searchController.dimsBackgroundDuringPresentation = NO; // default is YES
self.searchController.searchBar.delegate = self; // so we can monitor text changes + others
self.definesPresentationContext = YES;
_searchController.hidesNavigationBarDuringPresentation = NO;
我只想在此处隐藏搜索栏,并显示带有标题的普通导航栏:
最佳答案
如果要隐藏整个导航栏,并且要使用自己的导航栏,则可以先隐藏导航 Controller 的导航栏。
[self.navigationController setNavigationBarHidden:YES];
//OR
[self.navigationController setNavigationBarHidden:YES animated:NO];
或者,如果您已将自定义标题 View 用于导航栏,则可以执行
self.navigationItem.titleView.hidden = YES;
或者如果您想隐藏后退按钮项,则可以
self.navigationItem.hidesBackButton = TRUE;
或者,如果您只想隐藏标题,则可以
self.navigationItem.title = @"";
和
self.navigationController.navigationItem.titleView = nil ;