动态创建视图控制器后导航栏消失

Posted

技术标签:

【中文标题】动态创建视图控制器后导航栏消失【英文标题】:Navigation bar disappear after create viewcontroller dynamically 【发布时间】:2017-11-02 04:03:23 【问题描述】:

我是ios新手,正在尝试构建一个带有导航栏的AR应用,我在应用中定义了3个视图控制器,并使用故事板和导航栏来切换视图控制器:

VC1 - 主页视图,有一个按钮导航到 VC2;

VC2 - 此视图控制器将调用相机扫描图像标记;识别出图像后,我只是以编程方式实例化 VC3。

VC3 - 只是显示图像的一些信息,我在这里添加了 2 个按钮,它们将分别导航到 VC1 和 VC2。

所以VC1->VC2,VC2->VC1作为导航栏配置是可以的,问题是当我点击VC3中的按钮到VC1或VC2时,VC1和VC2中的导航栏都消失了。看来我在这里错过了一些配置,谁能告诉我如何让导航栏一直在那里?

【问题讨论】:

【参考方案1】:

您可以在 VC1 和 VC2 的方法 viewDidAppear 中检查 navigationBar 的可见性,如下所示:

- (void)viewDidAppear:(BOOL)animated

    [super viewDidAppear:animated];

    NSLog(@"navigationBar is hidden:%@\n",  
    self.navigationController.navigationBar.hidden ? @"YES": @"NO");

在 VC1 和 VC2 中应该是 YES,你可能在某个地方改变了 navigationBar 的可见性,找到它然后修复它。

【讨论】:

【参考方案2】:

我已经通过下面的链接解决了我的问题,它运行良好

Change destination of Navigation Back button

【讨论】:

以上是关于动态创建视图控制器后导航栏消失的主要内容,如果未能解决你的问题,请参考以下文章

如何使用数据库在 Laravel 中创建动态菜单栏

添加导航控制器后标签栏项目消失

实现动态内容的透明模糊导航栏

导航视图上的 Sencha Touch 2 动态按钮

iOS - 通过在左边缘平移弹出视图控制器,导航栏消失

添加子视图会在子视图和导航栏之间留下空隙