如何在 NavigationController 之后的 TabBar-connected ViewController 中显示 navigationItem.title
How to display navigationItem.title in a TabBar-connected ViewController after NavigationController
抱歉,标题令人困惑。我的设置很简单,如下所示:
`Navigation Controller -> View Controller1 -> Tab Bar Controller -> View Controller2
-> View Controller3`
有一个show-segue,由ViewController1中的BarButtonItem触发,指向TabBarController。对于视图控制器 2 和 3(连接到选项卡栏控制器),我配置了标题并在右上角添加了一个 BarButtonItem。就这样。当我运行 App时,标题和VC2&3的按钮不显示,即使我直接在.swift-Class中设置标题:
(self.navigationItem.title = "title of ViewController2"
)
相反,模拟器显示 header 在 VC2&3 中只有一个“<返回”按钮。
我想要的是'<返回'按钮+我的标题和右边的BarButtonItem。很抱歉问了这么一个微不足道的问题,但我就是找不到解决办法。
我正在使用 Swift 2.1,Xcode 7.1,OS X 10.11.1
谢谢!
所以,我终于找到了适合我的案例的解决方案。 ViewController1 可以在 prepareForSegue-method 中发送 VC2&3 的标题,例如:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let vc = segue.destinationViewController.navigationItem.title = "new title"
}
或者更好的解决方案:ViewController2 设置自己的标题。
class ViewController2: UIViewController {
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
navigationController?.visibleViewController?.navigationItem.title = "new title"
}
}
抱歉,标题令人困惑。我的设置很简单,如下所示:
`Navigation Controller -> View Controller1 -> Tab Bar Controller -> View Controller2
-> View Controller3`
有一个show-segue,由ViewController1中的BarButtonItem触发,指向TabBarController。对于视图控制器 2 和 3(连接到选项卡栏控制器),我配置了标题并在右上角添加了一个 BarButtonItem。就这样。当我运行 App时,标题和VC2&3的按钮不显示,即使我直接在.swift-Class中设置标题:
(self.navigationItem.title = "title of ViewController2"
)
相反,模拟器显示 header 在 VC2&3 中只有一个“<返回”按钮。
我想要的是'<返回'按钮+我的标题和右边的BarButtonItem。很抱歉问了这么一个微不足道的问题,但我就是找不到解决办法。
我正在使用 Swift 2.1,Xcode 7.1,OS X 10.11.1 谢谢!
所以,我终于找到了适合我的案例的解决方案。 ViewController1 可以在 prepareForSegue-method 中发送 VC2&3 的标题,例如:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let vc = segue.destinationViewController.navigationItem.title = "new title"
}
或者更好的解决方案:ViewController2 设置自己的标题。
class ViewController2: UIViewController {
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
navigationController?.visibleViewController?.navigationItem.title = "new title"
}
}