【问题标题】:Hiding NavigationBar before and after segue在segue之前和之后隐藏NavigationBar
【发布时间】:2012-08-29 04:04:07
【问题描述】:

我有一个应用程序,其中一个 TableView 控制器连接到一个 ViewController,然后连接到另一个。

我想最大化 TVC 中的空间并使用

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

隐藏栏。但是,从segue返回时bar返回视图。

该应用是使用 Xcode 4.3.1 在 Storyboard 5.1 中构建的。

任何人都可以通过告诉我在哪里可以放置类似的指令来从 segue 返回时删除导航栏或建议一种替代方法来提供帮助。

通过更改所涉及控制器的属性,我已经用尽了情节提要中的所有方法。然而,你在 Storyboard 中看到的并不总是我得到的。

【问题讨论】:

  • 通过添加解决了我的问题-(void)viewDidAppear:(BOOL)animated { [self.navigationController setNavigationBarHidden: YES animated:NO]; }
  • 谢谢 John Jamieson,它正在工作,但 viewWillAppear: 和方法 setNavigationBarHidden:YES animated:YES 更好一点。试试看。

标签: objective-c swift ios5 uinavigationbar uistoryboard


【解决方案1】:

我在评论中找到了上面的答案,所以只是记录它,因为我使用它并且效果很好!感谢@Tomasz。

为了防止导航栏在您返回 segue 后重新出现在标题中,请使用以下命令:

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

【讨论】:

  • 只是几个注释来改进答案:1. 不要忘记调用 super 的实现 & 2. 你可以只传递 animated 而不是 YES 以保持视觉连贯性
【解决方案2】:

迅捷解决方案

override func viewWillAppear(animated: Bool) {
    self.navigationController?.setNavigationBarHidden(true, animated: true)
}

感谢@spacemonkey 和@Tomasz,这成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    相关资源
    最近更新 更多