添加属性UISearchBar *mySearchBar
到你的 viewController 作为
@property(nonatomic, retain) UISearchBar *mySearchBar;
符合UISearchBarDelegate
as
@interface HomeViewController () <UISearchBarDelegate>
...
...
@end
然后实施showSearch
方法如
-(void)showSearch:(id)sender {
if(!mySearchBar) {
mySearchBar = [[UISearchBar alloc] init];
[mySearchBar setFrame:CGRectMake(0, 0, self.view.frame.size.width, 55)];
[mySearchBar setShowsCancelButton:YES animated:YES];
[self.view addSubview: mySearchBar];
mySearchBar.delegate = self;
self.navigationController.navigationBarHidden = YES;
}else {
searchBar.alpha = 1.0;
self.navigationController.navigationBarHidden = YES;
}
然后将搜索栏委托方法实现为:
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar {
self.navigationController.navigationBarHidden = NO;
[mySearchBar setAlpha:0.0];
}
希望你通过这样做有了这个想法。如果您愿意,您也可以将其直接添加到导航控制器本身,然后使用显示/隐藏searchBar
alone.
您可以将其添加到导航控制器,就像初始化一样mysearchBar
并将其添加到navigationBar
as :
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc] initWithCustomView:mySearchBar];
self.navigationItem.rightBarButtonItem = searchBarItem;