我正在尝试使用 searchString 预加载 UISearchBar。
在当前设置中。我在 UITableViewController 中使用 UISearchDisplayController。
我使用的第一种方法是在以下方法中设置搜索字符串:
- (void) presetSearchDisplayControllerWithString:(NSString*)searchString{
[self.searchDisplayController setActive:YES animated:NO];
[self.tableView setContentOffset:CGPointMake(0, 0)];
self.searchBar.text = searchString;
self.searchFetchedResultsController = [self createFetchedResultsControllerWithSearchTerm:searchString];
}
有用。UISearchbar 显示搜索字符串,隐藏原始 tableView 和 TableViewIndex。但是,如果我按下 searchBar 上的取消按钮,它会崩溃:
* -[UISearchDisplayController setActive:animated:], /SourceCache/UIKit_Sim/UIKit-2372/UISearchDisplayController.m:682 中的断言失败 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“搜索内容导航控制器不得在 -setActive:YES 和 -setActive:NO 之间更改” *
第二个变量也不起作用
- (void) searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {
[self.searchDisplayController.searchBar setText:@"rune"];
}
好吧,如果您点击搜索栏,它就会起作用。但在你完成之前,它只显示一个常规的 tableView。