Objective c 如何在导航中显示UISearchBar?

Objective c 如何在导航中显示UISearchBar?,objective-c,uitableview,uisearchbar,Objective C,Uitableview,Uisearchbar,我在导航栏中有搜索图标,在TableViewHeader中有UISearchBar。 我想隐藏UISearchBar,但在以下情况下显示和隐藏: ui搜索栏显示:单击搜索图标,然后取消导航并显示它 ui搜索栏隐藏:按“取消”隐藏搜索并显示导航返回 请帮帮我 谢谢 这就是我到目前为止所做的 - (void) viewDidload{ self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero]; self.sea

我在导航栏中有搜索图标,在TableViewHeader中有UISearchBar。 我想隐藏UISearchBar,但在以下情况下显示和隐藏:

ui搜索栏显示:单击搜索图标,然后取消导航并显示它

ui搜索栏隐藏:按“取消”隐藏搜索并显示导航返回

请帮帮我

谢谢

这就是我到目前为止所做的

- (void) viewDidload{

self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
        self.searchBar.placeholder = @"Search";
self.searchBar.delegate = self;

[self.searchBar sizeToFit];

self.strongSearchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];
self.searchDisplayController.searchResultsDataSource = self;
self.searchDisplayController.searchResultsDelegate = self;
self.searchDisplayController.delegate = self;

self.tableView.tableHeaderView = self.searchBar;


_btnSearch = [UIButton buttonWithType:UIButtonTypeCustom];
_btnSearch.frame = CGRectMake(0, 0, 22, 22);
[_btnSearch setImage:[UIImage imageNamed:@"search_btn.png"] forState:UIControlStateNormal];
[_btnSearch addTarget:self action:@selector(showSearch:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *searchItem = [[UIBarButtonItem alloc] initWithCustomView:_btnSearch];

self.navigationItem.rightBarButtonItems = _btnSearch;
}
这是我单击图标搜索时的操作

- (IBAction)showSearch:(id)sender{
    [self.searchBar becomeFirstResponder];
}
我不想在tableView中进行搜索,也不想在单击搜索图标时显示UISearchBar

另一个问题:当我调用[self.searchBar becomeFirstResponder]时;它不好用。“取消”按钮根本不起作用


请帮助我。

要将搜索栏置于导航栏的中心:

self.navigationItem.titleView = self.searchBar;
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc] initWithCustomView:self.searchBar];
self.navigationItem.rightBarButtonItem = searchBarItem;
要将搜索栏置于导航栏的左/右侧,请执行以下操作:

self.navigationItem.titleView = self.searchBar;
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc] initWithCustomView:self.searchBar];
self.navigationItem.rightBarButtonItem = searchBarItem;
从iOS 7开始,默认情况下支持此功能。设置UISearchDisplayController的
displaysSearchBarInNavigationBar=YES

将搜索栏置于导航栏的中心:

self.navigationItem.titleView = self.searchBar;
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc] initWithCustomView:self.searchBar];
self.navigationItem.rightBarButtonItem = searchBarItem;
要将搜索栏置于导航栏的左/右侧,请执行以下操作:

self.navigationItem.titleView = self.searchBar;
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc] initWithCustomView:self.searchBar];
self.navigationItem.rightBarButtonItem = searchBarItem;
从iOS 7开始,默认情况下支持此功能。设置UISearchDisplayController的
displaysSearchBarInNavigationBar=YES

如果我没有错,在图中这是@Virussmca No,它只是一个图标。我想在单击图标后显示UISearchBar。你能帮我吗?如果我没记错的话,在图片中这是@Virussmca不,它只是一个图标。我想在单击图标后显示UISearchBar。你能帮我吗?@Viruss mca我只想显示UISearchBar和隐藏UINavigation。当UISearchBar出现时,它将隐藏UINavigation。单击UISearchBar中的“取消”按钮时,它将自动删除该按钮并显示“返回导航”。你能帮我吗?我需要它。@MabKaaKoo:你检查过UISearchDisplayController吗?@Virussmca,我已经更新了上面的问题。你能帮我查一下吗?Thank@Virussmca我只想显示UISearchBar和隐藏UINavigation。当UISearchBar出现时,它将隐藏UINavigation。单击UISearchBar中的“取消”按钮时,它将自动删除该按钮并显示“返回导航”。你能帮我吗?我需要它。@MabKaaKoo:你检查过UISearchDisplayController吗?@Virussmca,我已经更新了上面的问题。你能帮我查一下吗?感谢