实现 UISearchController 时遇到问题

Trouble implementing UISearchController

我在实施 UISearchController

时遇到问题

我有一个 UIViewController,其中包含 UITableView 和 table 视图下方的一些按钮。

- (void)viewDidLoad {

    [super viewDidLoad];
    ...
    _searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    _searchController.searchResultsUpdater = self;
    _searchController.dimsBackgroundDuringPresentation = NO;
    _searchController.searchBar.scopeButtonTitles = @[];
    _searchController.searchBar.delegate = self;
    NSLog(@"tableViewHeader %@", NSStringFromCGRect(_tableView.tableHeaderView.frame));
    NSLog(@"searchBar       %@", NSStringFromCGRect(_searchController.searchBar.frame));
    _tableView.tableHeaderView = _searchController.searchBar;
    ...
}

NSLog returns:

tableViewHeader {{0, 0}, {0, 0}}
searchBar       {{0, 0}, {320, 44}}

总的来说,我似乎无法让 tableViewHeader 可见。由于我没有使用情节提要,我将 UITableView 实例化如下:

_tableView = [[UITableView alloc] init];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.separatorInset = UIEdgeInsetsZero;
_tableView.layoutMargins = UIEdgeInsetsZero;
_tableView.backgroundColor = [UIElementsStyleKit tableCellBackground];

[self.view addSubview:_tableView];

可能出了什么问题?

谢谢

//编辑: 以防万一它不是隐含的,UITableView 的维度由 NSLayoutConstraints 定义并且它显示完美。问题只是 UISearchBar 没有显示。

我的问题的解决方案是在将 UITableView 作为子视图添加到 self.view 之后定义 UISearchController

我将代码移到 [self.view addSubview:_tableView] 之前,一切都按预期进行。