我正在努力與UISearchDisplayController
,並希望有人能幫助我。UISearchDisplayController和setDisplaysSearchBarInNavigationBar
所以基本上我有一個UINavigationBar
其中有一個「搜索」按鈕。當有人點擊「搜索」UISearchDisplayController
應該積極和UISearchBar應該出現在UINavigationBar
內。在SearchBar旁邊,我實現了一個「取消」按鈕,取消激活SearchDisplayController
並將UINavigationBar
重置爲「搜索」按鈕的標準。
我的第一個問題是我的SearchBar
和結果的表或灰色覆蓋而SearchDisplayController
是活性之間的差距。
第二個問題是,我不能攻取消後重置我rightBarButtonItem爲默認的圖標(放大鏡)。即使當我嘗試設置[self.navigationItem setRightBarButtonItem:nil];
時,它也不會發生任何事情,它只是保留在「取消」按鈕中。
這是我實現:(UI元素都通過我的故事板加)
- (IBAction)btnSearchClicked:(id)sender {
[self.navigationController.navigationBar addSubview:self.searchController.searchBar];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEditing)];
[self.searchController.searchBar setFrame:CGRectMake(0, 0, 250, 44)];
[self.searchController setDisplaysSearchBarInNavigationBar:YES];
[self.searchController setActive:YES animated:YES];
[self.searchController.searchBar becomeFirstResponder];
}
-(void)cancelEditing
{
[self.navigationItem setRightBarButtonItem:nil];
[self.searchController setActive:NO animated:YES];
[self.searchController.searchBar removeFromSuperview];
}