【发布时间】:2015-02-17 00:57:02
【问题描述】:
我已经实现了 UISearchController,它工作得很好,除了...
当我点击搜索栏时,导航栏按预期消失。当我将手机旋转到横向视图时,我得到了这个有意义的视图。
但是,当我将手机旋转回纵向视图(仍然在搜索类型区域中选择)时,我会看到以下视图。
您可以看到导航栏不再出现。我觉得我正在实现一个基本的搜索控制器。 可能是什么原因造成的?
self.venueSearchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.venueSearchController.searchResultsUpdater = self;
self.venueSearchController.searchBar.delegate = self;
self.venueSearchController.dimsBackgroundDuringPresentation = NO;
self.venueSearchController.hidesNavigationBarDuringPresentation = YES;
self.venueSearchController.searchBar.frame = CGRectMake(self.venueSearchController.searchBar.frame.origin.x, self.venueSearchController.searchBar.frame.origin.y, self.venueSearchController.searchBar.frame.size.width, 44.0);
self.definesPresentationContext = YES;
self.navigationController.navigationBar.translucent = YES;
self.venueSearchController.searchBar.translucent = YES;
self.tableView.tableHeaderView = self.venueSearchController.searchBar;
【问题讨论】:
-
这是 UISearchController 的默认行为,当搜索类型区域处于活动状态时导航栏隐藏,点击取消时导航栏显示,这是你的行为吗?
-
不,我的问题是,在第二个屏幕截图中,搜索栏位于时间/电池/运营商标题后面,这是不正确的
-
Reson for your search bar is behind the time/battery/carrier header is you given height = 44 for your searchBar.frame,它认为它应该是 64,因为状态栏从顶部占据 20px 高度。
-
不,我不相信这是正确的。将手机旋转回纵向模式后,UI 搜索控制器应自动重置导航栏高度
-
@aherrick 您已经设置了 searchBar 委托,但没有实现必要的方法。请参阅下面的答案
标签: ios uisearchbar uisearchcontroller