如何在tableview搜索栏中引用navigationcontroller?

时间:2012-05-21 07:37:08

标签: iphone objective-c xcode

我在故事板中设置了导航控制器和tableview控制器。 tableview中有一个搜索栏。 我使用self.navigationcontroller获得了对导航控制器的引用。 我用

[self.navigationController setNavigationBarHidden:YES animated:animated];

隐藏显示的后续视图中的导航栏。 在不使用搜索栏的情况下在tableview中选择单元格时,此方法可以正常工作。 但是,如果我使用搜索栏在表格视图中显示特定单元格,并且如果我从该表格中选择一个单元格,那么显然我将丢失对导航控制器的引用,因为尽管执行了上述代码,导航栏仍然显示在以下观点。

我该怎么做才能隐藏导航栏?

2 个答案:

答案 0 :(得分:1)

这是我发现的:NavigationBarHidden属性显然已重置,因为当搜索栏离开视图时,它将再次在视图上发送导航栏。我不确定我到底发生了什么,但是我的viewWillDisappear中的这行代码解决了这个问题:

 self.searchDisplayController.active=NO;

答案 1 :(得分:0)

为什么不在下面的viewcontroller上执行那行代码?

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}