单击NavigationBar中的UISearchBar时没有任何反应

Kim*_*rly 5 objective-c uiviewcontroller uisearchbar ios

我在我的初始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;


}
Run Code Online (Sandbox Code Playgroud)

就像我说它在第一个UIViewController中工作,我在其他2-3个viewControllers中遗漏了一些东西我试过添加它吗?我不明白为什么searchBar出现在navBar中,但点击进入后没有任何事情发生.我也像这样设置了委托:

@interface ViewController () <UISearchResultsUpdating>
Run Code Online (Sandbox Code Playgroud)

Cez*_*zar 11

尝试设置definesPresentationContextNO只要你提出的一个新的第一个视图控制器.

我相信演示文稿走向视图控制器层次结构,寻找定义上下文而不是下行的第一个.

  • 现在效果很好。我想我只需要熟悉definePresentationContext,因为我仍然对那条线的实际作用感到困惑。似乎 searchBar 是唯一不能在其他视图上工作的东西,但其他一切似乎都运行良好。 (2认同)