如何隐藏UINavigationBar中的UISearchController
问题描述:
我有一个导航栏,当屏幕第一次显示时,其上没有搜索栏显示。我在导航栏中触发并显示搜索栏,但我想知道如何隐藏搜索栏并再次显示导航栏标题。如何隐藏UINavigationBar中的UISearchController
我创建的搜索栏如下:
_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;
我只想在这里隐藏搜索栏和带有标题显示正常导航栏:
答
如果你想隐藏整个导航栏,如果你想要使用你自己的导航离子棒,您可以先隐藏导航控制器的导航栏。
[self.navigationController setNavigationBarHidden:YES];
//OR
[self.navigationController setNavigationBarHidden:YES animated:NO];
,或者如果你已经使用自定义标题视图导航栏,你可以做
self.navigationItem.titleView.hidden = YES;
,或者如果你想隐藏回栏按钮的项目,你可以做
self.navigationItem.hidesBackButton = TRUE;
或者如果你想只隐藏标题,你可以做
self.navigationItem.title = @"";
And
self.navigationController.navigationItem.titleView = nil ;
答
你可以尝试添加在财产下面。
隐藏导航栏在演示。
对于裁判:
https://*.com/a/12529945/3799720
另一个裁判:
-(void)viewDidLayoutSubviews{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
UISearchDisplayController hiding navigation bar
注:未测试
+0
这隐藏了整个导航栏。我只想隐藏搜索栏并显示正常的导航栏。 – birdcage
您是否尝试更改self.sharedNavigationItem.titleView? –