UITabBarController 中的 UISearchController 没有响应触摸
Posted
技术标签:
【中文标题】UITabBarController 中的 UISearchController 没有响应触摸【英文标题】:UISearchController in UITabBarController is not responding to touch 【发布时间】:2015-08-18 18:12:45 【问题描述】:我有一个 tabbarcontroller,它位于 uinavigationcontroller 内部,我试图在其中一个选项卡上的 tableviewheader 中放置一个搜索栏。我能够在导航控制器上的任何屏幕上成功使用下面的代码,但是当视图位于 tabbarcontroller 上时,搜索不会响应触摸。我可以成功地将其设置为在代码中处于活动状态,但我也需要触摸才能工作。
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.searchBar.scopeButtonTitles = @[@"SEARCH"];
[self.searchController.searchBar setPlaceholder:@"SEARCH"];
self.searchController.searchBar.delegate = self;
self.searchController.delegate = self;
self.searchController.searchBar.backgroundColor = [UIColor colorWithRed:0.843 green:0.843 blue:0.843 alpha:1];
self.searchController.searchBar.tintColor = [UIColor blackColor];
self.myTableView.tableHeaderView = self.searchController.searchBar;
self.definesPresentationContext = YES;
[self.searchController.searchBar sizeToFit];
【问题讨论】:
【参考方案1】:我遇到了类似的问题,发现self.definesPresentationContext = YES;
行是问题的根本原因(更多信息:UISearchController and definesPresentationContext)。
确保类设置self.definesPresentationContext = YES;
也是搜索栏的父视图控制器。如果您使用您提供的代码初始化UISearchController
,然后将搜索栏分配给层次结构之外的视图,这可能会导致问题。
【讨论】:
以上是关于UITabBarController 中的 UISearchController 没有响应触摸的主要内容,如果未能解决你的问题,请参考以下文章
UITabBarController 问题中的 UINavigationController
UITabBarController 中的 UINavigationController 没有完全包裹 UIViewController
嵌入在 NavigationController 中的 UITabBarController
以编程方式将 UITabBarController 中 TabBarItem 中的图标居中