搜索结果,显滚动下方的状态栏
通过UISearchBar
执行对数据集搜索时,搜索结果中成功显示UITableViewController
的UITableView
。但是,当向下滚动结果时,UITableView
的行可以看到UINavigationBar
和模拟器的状态栏下方。搜索结果,显滚动下方的状态栏
这显然不是我要的样子。理想情况下,我希望UISearchBar
充当UITableView
的标题,所有搜索结果都包含在UISearchBar
的范围按钮下,但我的尝试未成功。
以下是有关UITableViewController
及其UITableView
的属性的情节串联设置。
下面是我使用来设置UISearchController
及其UISearchBar
相关的代码。
BallotTunesSearchTableViewController.h
@interface BallotTunesSearchTableViewController : UITableViewController <UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate>
BallotTunesSearchTableViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.appDelegate = [[UIApplication sharedApplication] delegate];
// Initialize the search controller
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
// Setup the search bar
self.searchController.searchBar.delegate = self;
self.searchController.searchBar.scopeButtonTitles = [NSMutableArray arrayWithObjects:SongScopeName, ArtistScopeName, AlbumScopeName, nil];
self.tableView.tableHeaderView = self.searchController.searchBar;
}
更新:注意UITableViewController
嵌入在UINavigationController
,并设置UINavigationBar
的半透明时到NO
,UISearchBar
与UINavigationBar
一起滑下视图。
另外请注意,我不是在实现故事板(不过,我可采取的路线,如果我不能让我的当前设置工作)的UISearchBar
。
经过多次面对手心,这一切都归结为缺乏这行代码:
self.definesPresentationContext = YES;
表示上下文设置为YES
表示当视图控制器呈现视图控制器的观点应该被覆盖UISearchController
。
一些额外的笔记,你必须在呈现视图控制器中添加self.definesPresentationContext = true。对我而言,如果呈现视图控制器隐藏其状态栏,则不起作用,我必须使其在搜索结果视图控制器中可见 – 2015-05-06 13:21:35
尝试将导航栏设置为不透明。 self.navigationController.navigationBar.translucent = NO; – 2014-11-24 19:42:22
@MikeWelsh很棒的建议。但是,当关闭“UINavigationBar”的半透明时,“UISearchBar”会在选中时滚动视图,因为它依赖于嵌入在“UINavigationBar”中。 – Ryan 2014-11-24 19:50:31
这个VC嵌入到UINavigationController中吗?你如何介绍这个搜索VC? – 2014-11-24 21:30:53