我使用搜索显示控制器进行搜索。我关注Apple的TableSearch示例。
在searchBarTextDidBeginEditing
我放[self.searchDisplayController setNavigationBarHidden:NO animated:YES]
以显示导航栏,但这不起作用。键盘显示时,导航栏会被推到顶部。
首次显示键盘时,有没有办法让导航栏停留在页面上?
由于
泰德
答案 0 :(得分:0)
这似乎为我解决了这个问题。在iOS5 / 6.1中都进行了测试。没有我能看到的视觉问题。
- (void)viewDidAppear
{
[super viewDidAppear];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillAppear:) name:UIKeyboardWillShowNotification object:nil];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)keyboardWillAppear:(NSNotification *)notification
{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
-(void)viewDidLayoutSubviews{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
答案 1 :(得分:-1)
可能有更好的解决方案,但这就是我现在正在使用的方法。导航栏最初会被遮盖,但这会让它立即向后滑动:
- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {
[self.navigationController setNavigationBarHidden:NO animated:YES];
}