UINavigationBar标题无法正确设置
问题描述:
我有一个带有tableview的导航栏,当我选择tableview的一个单元格时,它会将我带到另一个带有所选单元格标题的表格视图,并且我还使用页面视图控制器tableviews。UINavigationBar标题无法正确设置
我在第一的tableview的视图控制器载导航栏的标题为根表:
override func viewDidLoad() {
self.navigationItem.title = "TableView Title"
}
我设定栏的标题中选择在第二的tableview的视图控制器作为细胞后:
override func viewDidLoad() {
self.navigationController?.navigationBar.topItem?.title = "chosen cell text"
}
override func viewDidAppear(animated: Bool) {
self.navigationController?.navigationBar.topItem?.title = "chosen cell text"
}
使用这些代码,它正确设置了根tableview的标题。
但是,当我选择一个细胞。根表的标题出现在后退按钮中。没有其他的标题。
当我转到第二个tableview的下一页时,第二个tableview的标题显示正确。因此,为什么第二个tableview的标题在第一次出现时不会出现。我怎样才能调用它?
解决方案:首先感谢您的帮助。我尝试通过self.navigationItem.titleView = "chosen cell text"
更改页面查看器控制器中的标题,它起作用。
答
设置子视图控制器本身的标题属性。
例子:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Chosen Cell Text"
}
子视图 - 控制多年平均值有自己的酒吧。所以它不会改变任何东西 – sof98789
正确的,视图控制器应该共享导航控制器,并因此共享导航栏。但是,导航控制器通过阅读视图控制器的标题属性来自动更新导航栏。此代码已经过测试。相信我,我知道它有效。摆脱手动设置导航栏标题的行。 –
但它并不适用于我所有我看到的是“根视图控制器”。也许问题是页面查看器控制器,需要关心显示第二个表。 – sof98789