搜索显示控制器在点击搜索栏时不隐藏导航栏

时间:2009-12-14 05:09:06

标签: iphone

我使用搜索显示控制器进行搜索。我关注Apple的TableSearch示例。

searchBarTextDidBeginEditing我放[self.searchDisplayController setNavigationBarHidden:NO animated:YES]以显示导航栏,但这不起作用。键盘显示时,导航栏会被推到顶部。

首次显示键盘时,有没有办法让导航栏停留在页面上?

由于

泰德

2 个答案:

答案 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];
}