viewWilldisappear和viewDiddisappear之间会发生什么?

时间:2012-05-21 19:50:51

标签: iphone objective-c xcode

这是对之前未解决的帖子的跟进。 我在tableview中有一个navcontroller,一个tableview控制器和一个搜索栏。所有这些都是在故事板中构建的。 然后,当选择单元格时,我以编程方式构建另一个viewcontroller。 我不希望导航栏出现在最后一个视图中,因此,在viewWillDisappear中我调用

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

如果我在主tableView中选择一个单元格,这可以正常工作。 但是,如果在缩小搜索栏中搜索的数据后选择单元格,则导航栏将显示在后续视图中,尽管在viewWillDisappear中调用setNavigationBarHidden。

我尝试在viewDidDisappear中重复此调用,现在,导航栏会从后续视图中消失,但会暂时显示。

我想知道对viewWilldisappear和viewDiddisappear的调用之间发生了什么,它显然重置了NavigationBarHidden属性?

1 个答案:

答案 0 :(得分:1)

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

 self.searchDisplayController.active=NO;

接下来是:

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

当然,我很想听听那些真正理解这里发生的事情的人。