Pha*_*oan 10 objective-c uinavigationbar uisearchdisplaycontroller ios
我有一个UISearchBar在titleView导航栏(它看起来像下面的图片)的,我想使它的工作方式类似于一个在Safari浏览器.
我没有足够的声誉来发布图片,这是链接
第一张照片

第二张照片

我想要实现的目标是:
UISearchBar在该搜索栏内有一个清除按钮(看起来像带有2个加法按钮的第一张图片).view被另一个取代view,当它被解雇时,view返回到原始状态.我知道这可以通过使用来完成,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
*/
Run Code Online (Sandbox Code Playgroud)
在IOS 7,view的UISearchDisplayController(灰色的)并不包括主视图和resultTable没有重新加载数据,即使它能够过滤搜索字符串.(我不得不用KVO来显示它)
在iOS 6中,灰色的东西覆盖了所有的屏幕和键盘没有显示(它立即消失).
有人可以帮忙吗?谢谢.
我已经两次不得不做一个与你所描述的非常相似的用户界面,最近的一个更接近 iOS 7 的 TwitterUISearchBar行为。如果您想UISearchBar在 a 中显示 a UINavigationBar,请完全忘记该设置,因为您可能会遇到像这样的障碍(尽管Apple 似乎已修复)。
而是假装它。隐藏导航栏,UIViewController并使用iOS 7 或iOS 6UIView高度为 的并将其放在顶部,使其看起来像导航栏。像普通子视图一样添加内部,然后在方法中根据需要为其设置动画。6444UISearchBarUISearchBarDelegate
| 归档时间: |
|
| 查看次数: |
1459 次 |
| 最近记录: |