如何导航到另一个导航控制器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中显示单独的导航栏。
答案
看起来你在根视图控制器上有嵌入式导航控制器,当你从一个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的主要内容,如果未能解决你的问题,请参考以下文章