我在我的初始UIViewController中添加了一个UISearchBar,一切正常。然而,当我去添加相同的UISearchBar时,以同样的方式将另一个ViewController推到第一个上面,当我点击进入searchBar时似乎没有任何事情发生。没有委托方法被触发,没有键盘出现,没有。
这就是我将它添加到navigationBar的方式:
- (void)viewDidLoad {
[super viewDidLoad];
UITableViewController *searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
searchResultsController.tableView.dataSource = self;
searchResultsController.tableView.delegate = self;
self.searchResults = [NSMutableArray array];
self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
self.searchController.searchResultsUpdater = self;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.placeholder = NSLocalizedString(@"Search, eh?", nil);
// Include the search bar within the navigation bar.
self.navigationItem.titleView = self.searchController.searchBar;
self.definesPresentationContext = YES;
}
就像我说它在第一个UIViewController中工作一样,我在其他2-3个viewControllers中遗漏了什么我试过添加它吗?我不明白为什么searchBar出现在navBar中,但点击进入后没有任何事情发生。我也像这样设置了代表:
@interface ViewController () <UISearchResultsUpdating>
答案 0 :(得分:10)
尝试在第一个视图控制器上显示definesPresentationContext
时,尝试将NO
设置为{{1}}。
我相信演示文稿会走向视图控制器层次结构,寻找定义上下文而不是关闭的第一个。