我的场景中,我有三个视图控制器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)
但是,每个视图控制器我都想显示单独的导航栏或导航控制器。如果我设置了条形图,它不会覆盖状态栏,但是如果我嵌入了导航控制器,它会在故事板上显示正确的条形,但是输出会显示上一个视图控制器的条形和后退按钮。这里的问题是我将视图控制器设为透明,但B和C也显示为透明。我想在B和C中显示单独的导航栏。
答案 0 :(得分:0)
似乎您已在根视图控制器中嵌入了导航控制器,并且当您从一个Vc移到另一个Vc时,导航栏与带有后退按钮的根视图控制器相同,这很明显,因为您已将导航控制器嵌入了root查看控制器。
您可以做的一件事就是不要像这样进行锁定:
self.navigationController?.pushViewController(vc!, animated: true)
您可以尝试;
self.present(vc, animated: true, completion: nil)
此代码显示没有导航控制器的视图控制器B和C
答案 1 :(得分:0)
您将需要使用
修改/更新导航栏的标题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
}
希望这会有所帮助