导航栏未显示iOS Swift

安舍尔

我的应用程序中有多个视图控制器。我想隐藏navigationbar在我的第一个视图控制器中。所以我用下面的代码来隐藏导航栏

navigationController?.setNavigationBarHidden(navigationController?.navigationBarHidden == false, animated: true);

现在,我想在其他viewController中添加导航栏,但是,我的导航栏在该viewcontroller中不可见。为什么会这样呢?

我的故事板显示了导航栏,但是一旦我尝试运行我的应用程序,它便消失了。

如果我从一个视图控制器中隐藏导航栏,那么我们将无法使用导航控制器,是吗?我希望我错了。那么,导航栏不显示的原因是什么?

编辑:

另外,我只希望我的视图控制器处于纵向模式。因此,我做了以下工作,这是导致问题的原因吗?

extension UINavigationController{
    public override func shouldAutorotate() -> Bool {
        if (UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeLeft ||
            UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeRight ||
            UIDevice.currentDevice().orientation == UIDeviceOrientation.Unknown) {
                return false
        }
        else {
            return true
        }
    }
    
    public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
        return [UIInterfaceOrientationMask.Portrait ,UIInterfaceOrientationMask.PortraitUpsideDown]
    }
    

}

编辑1:

我正在使用以下代码从一个视图控制器移动而不是从故事板链接。现在是引起问题的吗?

 let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let secondViewController = storyboard.instantiateViewControllerWithIdentifier("HomeVC")
        presentViewController(secondViewController, animated: false, completion: nil)

编辑2:

请检查以下屏幕截图。我对secondview控制器的设置是什么

在此处输入图片说明

在此处输入图片说明

编辑3:

这是我的导航控制器属性检查器 在此处输入图片说明

文章

导航控制器是一个控制器,它具有视图控制器堆栈。因此,如果您有这样的事情:

资产净值-> A->(segue)B

即使您将隐藏导航栏,您仍然应该能够进行搜索。您还不能只取消隐藏viewWillAppear中第二个(B)视图控制器中的导航栏吗?首先,以相同的方式将其隐藏在viewWillAppear上。

编辑:问题的最终解决方案:使用:

 let controller = storyboard.instantiateViewControllerWithIdentifier("HomeVC")
 self.navigationController!.pushViewController(controller) 

代替:

let secondViewController = storyboard.instantiateViewControllerWithIdentifier("HomeVC")
presentViewController(secondViewController, animated: false, completion: nil)

因为pushViewController会将secondViewController添加到其堆栈中。presentViewController正在替换您的导航控制器,这就是为什么您看不到导航栏的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章