我有一个导航栏,当第一次显示屏幕时,上面没有搜索栏。我触发并在导航栏中显示搜索栏,但我想知道如何向后隐藏搜索栏并再次显示导航栏标题。

我创建搜索栏如下:

_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;

我只想在此处隐藏搜索栏,并显示带有标题的普通导航栏:

ios - 如何在UINavigationBar中隐藏UISearchController-LMLPHP

最佳答案

如果要隐藏整个导航栏,并且要使用自己的导航栏,则可以先隐藏导航 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 ;

10-08 07:27
查看更多