【问题标题】:Navigation bar won't show after pushing a view controller推送视图控制器后导航栏不会显示
【发布时间】:2019-03-11 16:53:38
【问题描述】:

我正在尝试从一个视图控制器移动到另一个。 当用户点击按钮移动到新的视图控制器时,我会使用这个函数:

    @objc private func infoButtonTap(){
    let navVC = UINavigationController()
    navVC.addChild(AboutViewController())
    self.navigationController?.pushViewController(AboutViewController(), animated: true)
}

问题是新的视图控制器出现在屏幕上,但我没有导航栏和后退按钮来向后移动。 我不使用 Storyboard,因为我想学习编写 UI。 我尝试了一些我在 Stackoverflow 上找到的东西,但没有一个对我有用。 如何将新的视图控制器设置为具有带后退按钮的导航栏?

【问题讨论】:

    标签: ios swift uinavigationcontroller


    【解决方案1】:

    为了让导航在应用程序中可见和使用,首先您需要设置一个带有根视图控制器的导航控制器,即您的第一个控制器,然后您可以在导航控制器对象上使用 push 方法来推送控制器到堆栈上。

    例如

    let navVC = UINavigationController.init(rootViewController: YourFirstViewControllerObject())
    navVC.pushViewController(NewViewControllerObj(), animated: true)
    

    【讨论】:

    • 我应该在哪里添加这些行?我现在尝试使用它,但它不起作用,它甚至不会显示新的 VC。
    【解决方案2】:

    您需要推送视图控制器。试试这个

    let aboutVC = AboutVC()
    self.navigationController?.pushViewController(aboutVC, animated: true)
    

    【讨论】:

    • 我试过了,但它没有显示新的视图控制器。
    • 您是否将当前视图控制器嵌入到导航控制器中?
    • 我想,我真的很陌生,找不到东西,但我确定我不知道要搜索什么。无论如何,我用我现在拥有的东西编辑了这个问题。我在主 ViewController 中编写了这个函数。
    【解决方案3】:

    UINavigationController 有一个变量 isNavigationBarHidden

    @objc private func infoButtonTap(){
        let navVC = UINavigationController()
        navVC.addChild(AboutViewController())
        self.navigationController?.isNavigationBarHidden = false
        self.navigationController?.pushViewController(AboutViewController(), animated: true)
    }
    

    【讨论】:

      【解决方案4】:

      您无需编写任何代码。

      选择将控制应用程序的根导航控制器。在 Inspector Bar 中,选择 Simulated Metrics(Inspector 中从右侧开始的第三个选择)并选中“Is Initial View Controller”框。然后连接下一个视图控制器,它本质上是应用程序的登陆页面。例如,通过按钮将其他视图控制器连接到该视图控制器后(选择按钮,然后按 Control 键 + 拖动到视图控制器,选择显示),您将看到显示“返回”的导航栏。完成后,您可以添加其他视图控制器并从登录页面视图控制器连接它们,然后将显示导航栏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-23
        • 1970-01-01
        • 2014-12-09
        • 1970-01-01
        • 2014-01-11
        相关资源
        最近更新 更多