搜索结果在状态栏下方可见地滚动

Rya*_*yan 5 uinavigationbar uitableview uiscrollview uisearchbar ios

通过a对数据集执行搜索时UISearchBar,搜索结果会成功显示在UITableViewControllers中UITableView.但是,当向下滚动结果时,UITableView行显示在UINavigationBar模拟器的状态栏下方.

滚动浏览搜索结果

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

以下是相关UITableViewController及其UITableView属性的Storyboard设置.

搜索结果表视图控制器及其表视图的属性

下面是我用来设置UISearchController它的相关代码UISearchBar.

BallotTunesSearchTableViewController.h

@interface BallotTunesSearchTableViewController : UITableViewController <UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate>
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

更新:请注意,UITableViewController它嵌入在a中UINavigationController,当设置UINavigationBarto 的半透明时NO,UISearchBar幻灯片与视图一起离开UINavigationBar.

搜索栏消失

另请注意,我没有UISearchBar在故事板中实现(但是,如果我无法使当前的设置工作,我可能会采取这种方式).

Rya*_*yan 4

经过几次打脸,都归结为缺少这行代码:

self.definesPresentationContext = YES;
Run Code Online (Sandbox Code Playgroud)

将呈现上下文设置为YES指示当视图控制器呈现 时,应覆盖视图控制器的视图UISearchController。