如何在Swift中设置导航栏的标题?

Emm*_*Emm 20 uitabbarcontroller uinavigationcontroller swift

我正试图Navigation Bar在Swift中设置标题,我设置Tab Bar并且Navigation Bar没有任何显示,没有按钮,没有标题,没有.我使用了一些代码,但是当我使用Tab Bar时它没有工作,当我删除时Tab Bar,代码正常工作,一切正常Navigation Bar,标题显示,按钮显示.

我用于标题的代码是:

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationItem.title = "My Title"

}
Run Code Online (Sandbox Code Playgroud)

Main.storyboard我连接Navigation ControllerTab Bar Controller,如图片中所示.

在此输入图像描述

那么,如何解决这个问题呢?问题是Navigation Bar在使用时无法正常工作Tab Bar.

kab*_*rai 30

因为Tab Bar它实际上是Root View Controller,所以Navigation Bar你需要在函数中设置UITabBarController's title,viewWillAppear以便每次切换标签时都会发生:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.navigationItem.title = "My Title"
    self.tabBarController?.navigationItem.leftBarButtonItem = settingsButton //This is the IBOutlet variable that you previously added
}
Run Code Online (Sandbox Code Playgroud)

但更好的方法就是让它反过来,就像这样

正确的视图层次结构

你应该UINavigationController为每个孩子挂钩UITabBarController,因为它在语义上更正确,并且更易于维护.


kat*_*000 9

您的问题不清楚,如果您提供的代码UIViewController保存在内部UINavigationControllernavigationBar显示,您只需使用:

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "My Title"
}
Run Code Online (Sandbox Code Playgroud)