2015-09-19 60 views
0

我有一个带有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" 更改页面查看器控制器中的标题,它起作用。

回答

1

设置子视图控制器本身的标题属性。

例子:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.title = "Chosen Cell Text" 
} 
+0

子视图 - 控制多年平均值有自己的酒吧。所以它不会改变任何东西 – sof98789

+0

正确的,视图控制器应该共享导航控制器,并因此共享导航栏。但是,导航控制器通过阅读视图控制器的标题属性来自动更新导航栏。此代码已经过测试。相信我,我知道它有效。摆脱手动设置导航栏标题的行。 –

+0

但它并不适用于我所有我看到的是“根视图控制器”。也许问题是页面查看器控制器,需要关心显示第二个表。 – sof98789