隐藏UINavigationBar

时间:2013-06-14 07:12:57

标签: uinavigationbar uisearchdisplaycontroller

我陷入了混乱的境地。 我正在使用导航控制器和UIPageViewController。

首先我们有一个包含带有searchDisplayController的TableView的视图。 此表视图显示故事列表。您可以选择一个单元格并转到另一个视图(基于页面的视图)并阅读故事。所以在第二个视图中我隐藏了导航栏。因为读者想要卷曲页面。

这里的每件事都很有效,直到我在searchBar(第一个视图)中搜索一个单词,然后选择单元格,然后转到第二个视图,导航栏将不会隐藏!

这两个视图都继承自UIViewController。

在第二个视图中,我这样做了:

- (void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];

  [self.navigationController setNavigationBarHidden:YES animated:animated];
    if (self.navigationController.navigationBarHidden) {
        NSLog(@"navigation bar is hidden");
    }

}

即使我明确隐藏了导航栏,当它到达If语句时,导航栏也不会被隐藏。

我做错了什么?

3 个答案:

答案 0 :(得分:0)

不要隐藏导航栏。只需减少其alpha。

self.navigationController.navigationBar.alpha =0;

答案 1 :(得分:0)

在appDelegate.m中执行此操作

[self.navigationController setNavigationBarHidden:YES];  

在alloc启动UINavigation控制器之后,在将其添加到窗口之前。

答案 2 :(得分:0)

我在这里找到了答案:

https://stackoverflow.com/a/6337037/1348121

UISearch显示控制器有一个内置的导航栏,我们必须以某种方式破解它以禁用它。