当用户点击搜索栏时,没有输入任何文本,并且屏幕已经变暗(但是桌面视图还没有出现),我想在屏幕上放一个按钮以允许用户导航一些其他功能.那可能吗?
谢谢!
最佳答案 这非常棘手. _dimmingView对searchDisplayController是私有的,它高于所有子视图.您可以做的是每次出现时都用自定义视图覆盖它([searchString length] == 0和DidBeginSearch)
(tempView的框架是为放置在表的tableViewHeader上的UISearchBar设置的)
- (void)viewDidLoad {
tempView = [[UIView alloc] initWith...];
// tempView setup
...
}
- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {
[tempView setFrame:CGRectMake(0, self.searchDisplayController.searchBar.frame.size.height, 320, self.searchDisplayController.searchResultsTableView.frame.size.height)];
[self.searchDisplayController.searchContentsController.view addSubview:tempView];
...
}
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
if ([searchString length] == 0)
[self.searchDisplayController.searchContentsController.view addSubview:tempView];
else
[tempView removeFromSuperview];
...
}
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
if (tempView && tempView.superview)
[tempView removeFromSuperview];
...
}
注意:我尝试在DidBeginSearch上创建一个新实例并在DidEndSearch上发布它,它只适用于第一次调用!奇怪的…
希望这可以帮助