因此,在我的项目中,当第一个屏幕上的标题为“ A”的按钮被点击时,我试图使用“ push” segue。 按下推键切换到标题为“ B”的第二个屏幕的过渡总是顺利进行,但导航栏标题不会随过渡而变化。 在“ B”屏幕上,我在IBInspector上将VC命名为“ B”,以便第二个屏幕的标题应为“ B”。但是过渡后,标题仍为“ A”,如下图所示。 https://thatnaoki.sakura.ne.jp/image/navBar.gif
该项目属于我工作的公司,因此我无法显示代码或更多详细信息,但我想尽一切可能告诉您。 通过“模态呈现”的顺序出现第一个屏幕。 我将导航控制器设置为“ A”屏幕的根vc。
这是我到目前为止尝试过的。
navigationItem.title = "B"
和self.title = "B"
处分别添加了viewdidload
和viewdidappear
,但是都没有用。仍然显示“ A”。self.navigationController?.isNavigationBarHidden = true
,然后隐藏了navigationbar
。 (当然,这并不能直接帮助我,但我刚刚进行了测试。)我试图在此项目之外创建相同的情况。但是我无法在项目外部重现此内容。这意味着我项目的代码必须有这种情况的原因。但是我完全不确定是哪个原因造成的。
我阅读了有关导航控制器的Apple文档,但他们说:“每次顶级视图控制器更改时,导航控制器都会相应地更新导航栏。”这对我没有太大帮助。
所以,我有点陷入这种情况...
有人可以给我任何可能的原因,为什么导航标题不会随过渡而变化吗?非常抱歉没有提供示例代码。
答案 0 :(得分:1)
尝试将title
中的viewController’s
title property
设置为viewDidLoad()
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Your Title Here"
}
}
答案 1 :(得分:0)
在View Controller内部:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
if segue.identifier == "yadadada" {
if let nc = segue.destination as? UINavigationController {
if let ti = nc.navigationBar.topItem {
ti.title = "Yeah!"
}
}
}
}