我有一个UISearchBar
在titleView
导航栏(它看起来像下面的图片)的,我想使它的工作方式类似于一个在Safari浏览器.
我没有足够的声誉来发布图片,这是链接
第一张照片
第二张照片
我想要实现的目标是:
在正常状态下,导航栏包含2个左右按钮,UISearchBar
在该搜索栏内有一个清除按钮(看起来像带有2个加法按钮的第一张图片).
在搜索状态中,view
被另一个取代view
,当它被解雇时,view
返回到原始状态.
适用于iOS 6和7
我知道这可以通过使用来完成,UISearchDisplayController
但它不起作用.这是我的代码:
.h:实施TableView's DataSource/Delegate, UISearchDisplayDelegate, UISearchBarDelegate
.M
-(void) viewDidload { //Add left, right buttons self.leftButton = [[UIBarButtonItem alloc] init]; [self.leftButton setStyle:UIBarButtonItemStylePlain]; [self.leftButton setTitle:@"Button"]; self.navigationItem.leftBarButtonItem = self.leftButton; self.rightButton = [[UIBarButtonItem alloc] init]; [self.rightButton setStyle:UIBarButtonItemStylePlain]; [self.rightButton setTitle:@"Button"]; self.navigationItem.rightBarButtonItem = self.rightButton; self.searchBar = [[UISearchBar alloc] initWithFrame:self.navigationController.navigationBar.bounds]; if (DEVICE_IS_IOS7) { self.searchBar.searchBarStyle = UISearchBarStyleMinimal; } self.navigationItem.titleView = self.searchBar; self.searchBar.delegate = self; //---------------- self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self]; self.searchController.delegate = self; self.searchController.searchResultsDataSource = self; self.searchController.searchResultsDelegate = self; } /* table implementation */
在IOS 7,view
的UISearchDisplayController
(灰色的)并不包括主视图和resultTable
没有重新加载数据,即使它能够过滤搜索字符串.(我不得不用KVO来显示它)
在iOS 6中,灰色的东西覆盖了所有的屏幕和键盘没有显示(它立即消失).
有人可以帮忙吗?谢谢.