如何从 UINavigationController 隐藏 UINavigationBar?

Posted

技术标签:

【中文标题】如何从 UINavigationController 隐藏 UINavigationBar?【英文标题】:How to hide UINavigationBar from a UINavigationController? 【发布时间】:2014-12-16 22:13:31 【问题描述】:

我有一个嵌入在 UINavigationController 中的视图控制器,如何隐藏 UINavigationBar?我想要导航功能,但我不希望顶部的那个栏..

tnx

【问题讨论】:

您查看过UINavigationController 的API 文档吗?有一些方法可以显示/隐藏导航栏。 【参考方案1】:

这应该可行:

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

要取回它,只需调用:

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

来源:How to hide the UINavigationBar for my first view

【讨论】:

【参考方案2】:

要隐藏导航栏,您可以使用以下代码

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

要取消隐藏导航栏,您可以使用以下代码

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

通过在您的 ViewController 中实现此代码,您可以隐藏特定的 viewController 其实诀窍是,在启动控制器时隐藏导航栏

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

当用户离开该页面时取消隐藏导航栏是 viewWillDisappear

- (void)viewWillDisappear:(BOOL)animated 
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    [super viewWillDisappear:animated];

【讨论】:

以上是关于如何从 UINavigationController 隐藏 UINavigationBar?的主要内容,如果未能解决你的问题,请参考以下文章

带有标签栏的 presentViewController

将 managedObjectContext 发送到 viewController 崩溃

ID:[...] 的 NSManagedObject 已失效

在 UINavigationController 中设置时图像不显示

UINavigationController - 何时释放推送的视图控制器等

使用 UINavigationController 从另一个控制器更新或重新加载 UIViewController?