搜索结果,显滚动下方的状态栏

问题描述:

通过UISearchBar执行对数据集搜索时,搜索结果中成功显示UITableViewControllerUITableView。但是,当向下滚动结果时,UITableView的行可以看到UINavigationBar和模拟器的状态栏下方。搜索结果,显滚动下方的状态栏

Scrolling through search results

这显然不是我要的样子。理想情况下,我希望UISearchBar充当UITableView的标题,所有搜索结果都包含在UISearchBar的范围按钮下,但我的尝试未成功。

以下是有关UITableViewController及其UITableView的属性的情节串联设置。

Search results table view controller and its table view's properties

下面是我使用来设置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,UISearchBarUINavigationBar一起滑下视图。

Search bar disappears

另外请注意,我不是在实现故事板(不过,我可采取的路线,如果我不能让我的当前设置工作)的UISearchBar

+0

尝试将导航栏设置为不透明。 self.navigationController.navigationBar.translucent = NO; – 2014-11-24 19:42:22

+0

@MikeWelsh很棒的建议。但是,当关闭“UINavigationBar”的半透明时,“UISearchBar”会在选中时滚动视图,因为它依赖于嵌入在“UINavigationBar”中。 – Ryan 2014-11-24 19:50:31

+0

这个VC嵌入到UINavigationController中吗?你如何介绍这个搜索VC? – 2014-11-24 21:30:53

经过多次面对手心,这一切都归结为缺乏这行代码:

self.definesPresentationContext = YES; 

表示上下文设置为YES表示当视图控制器呈现视图控制器的观点应该被覆盖UISearchController

+0

一些额外的笔记,你必须在呈现视图控制器中添加self.definesPresentationContext = true。对我而言,如果呈现视图控制器隐藏其状态栏,则不起作用,我必须使其在搜索结果视图控制器中可见 – 2015-05-06 13:21:35