我试图让UISearchController在UITableViewController中工作.我以编程方式创建所有内容(即没有界面构建器).除了在搜索时,我无法选择任何表格单元格(-tableView:didSelectRowAtIndexPath:从未被调用),因此大多数情况下都应该正常工作.
但是,我不认为这是一个与代表有关的问题,也不认为该方法没有被调用的另一个常见原因; 在搜索时,包含搜索结果的表格视图显示为灰色(即不活动),我相信这就是我无法选择任何单元格的原因.
我的想法是UISearchBar被卡住了作为第一响应者,但我尝试了各种方式来辞去这种状态和/或试图迫使表视图成为第一响应者,但所有这些都带来了灾难性的结果.
这是我的UITableViewController子类的相关代码:
@interface SearchResultsTableViewController()
@property (copy, nonatomic) NSArray *searchResults;
@property (strong, nonatomic) UISearchController *searchController;
@end
@implementation SearchResultsTableViewController
- (NSArray *)searchResults
{
// Lazy array instantiation
if (!_searchResults)
{
_searchResults = [[NSArray alloc] init];
}
return _searchResults;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self setSearchController:[[UISearchController alloc] initWithSearchResultsController:nil]];
[[self searchController] setSearchResultsUpdater:self];
[[[self searchController] searchBar] setFrame:CGRectMake(0.0f, 0.0f, CGRectGetWidth([[self tableView] frame]), 44.0f)];
[[[self searchController] searchBar] setSearchBarStyle:UISearchBarStyleMinimal];
[[[self searchController] searchBar] setPlaceholder:@"Search Presentations"];
[[[self searchController] searchBar] setDelegate:self];
[[self tableView] …Run Code Online (Sandbox Code Playgroud)