我的用例有点奇怪。我正在使用自己的导航栏,因此我将默认的导航栏隐藏在
[self.navigationController setNavigationBarHidden:YES animated:NO];
在
viewWillAppear
.
一切都很好,但是如果我在一个活动的搜索中打开键盘,然后回到上一个
UIViewController
,然后本机导航栏再次出现,最后出现两个导航栏(我自己的和默认的)。
这就是我设置
UISearchController
在里面
viewDidLoad
:
- (void)viewDidLoad {
[super viewDidLoad];
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.obscuresBackgroundDuringPresentation = NO;
self.searchController.searchBar.delegate = self;
[self.searchController.searchBar sizeToFit];
self.definesPresentationContext = YES;
self.searchController.hidesNavigationBarDuringPresentation = YES;
self.searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal;
}
我已经尝试移除
self.definesPresentationContext = YES;
(或将其转为“否”),但这产生了另一个问题,即当我回到前一个问题时
ui视图控制器
搜索栏保持在其他一切之上!直到我点击“取消”。我还试着用程序调用取消按钮
viewWillDissappear
但那也没用…
所以我没办法了,所以我来了。
有什么想法吗?