如何导航到另一个导航控制器iOS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何导航到另一个导航控制器iOS相关的知识,希望对你有一定的参考价值。

我的场景我有三个视图控制器A,B和C. A是根视图控制器,在A按钮中单击以导航B视图控制器,在侧面B视图控制器按钮单击以导航C视图控制器。下面的代码工作正常。

let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "firstview") as? ViewController
self.navigationController?.pushViewController(vc!, animated: true)

但是,每个视图控制器我想显示单独的导航栏或导航控制器。如果我设置栏它不覆盖状态栏,但如果我嵌入导航控制器它显示故事板中的正确栏,但输出显示前一个视图控制器栏和后退按钮。这里,问题是A视图控制器我透明但B和C也显示透明。我想在B和C中显示单独的导航栏。

enter image description here

答案

看起来你在根视图控制器上有嵌入式导航控制器,当你从一个Vc移动到另一个Vc时,导航栏与带有后退按钮的根视图控制器相同,很明显,因为你已经在根视图控制器中嵌入了导航控制器。

你可以做的一件事就是不要像这样做一个segue:

self.navigationController?.pushViewController(vc!, animated: true)

你可以试试;

self.present(vc, animated: true, completion: nil)

此代码在没有导航控制器的情况下显示视图控制器B和C.

另一答案

您需要使用修改/更新导航栏的标题

self.navigationItem.title = "your_title"

如果要在导航栏中添加一些奇特的视图,可以使用它

func updateTitle(_ title: String?) {
    let label = UILabel(frame: CGRect(x: 0, y: 0, width: 44, height: 400))
    label.text = title
    label.backgroundColor = .clear
    label.textColor = .white
    self.navigationItem.title = ""
    self.navigationItem.titleView = label
}

希望这可以帮助

以上是关于如何导航到另一个导航控制器iOS的主要内容,如果未能解决你的问题,请参考以下文章

Android:如何在选项卡内从一个片段导航到另一个片段? [关闭]

使用导航从一个片段导航到另一个片段后,防止后按工作

从一个片段移动到另一个片段时如何自动选择底部导航?

使用 NavController 从片段导航到另一个片段

导航到另一个片段时触发 API 调用

无法以编程方式导航到另一个 UIViewController iOS