我有一个标题导航栏。 当我双击文本重命名它时,它实际上说它是一个导航项,所以可能是这样。

我试图改变文本使用代码,如:

declare navigation bar as navagationbar here
button stuff {
    navigationbar.text = "title"
}

这显然不是我的代码,只是展示它是如何工作的。

所以每当我按下按钮,我希望标题改变。


当前回答

你可以通过改变显示的视图控制器的标题来改变标题:

viewController.title = "some title"

通常这是在视图控制器的viewdidload中完成的:

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "some title"
}

然而,这只有当你的视图控制器嵌入在UINavigationController中才有效。我强烈建议这样做,而不是自己创建一个导航栏。如果你坚持自己创建导航栏,你可以通过以下方式更改标题:

navigationBar.topItem.title = "some title"

其他回答

下面的代码适用于我的Xcode 7:

override func viewDidLoad() {        
    super.viewDidLoad()
    self.navigationItem.title = "Your Title"
}

斯威夫特5.1

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "What ever you want"
}

在viewDidLoad

导航控制器.navigationBar.topItem ?。title = "你的文本"

你可以通过改变显示的视图控制器的标题来改变标题:

viewController.title = "some title"

通常这是在视图控制器的viewdidload中完成的:

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "some title"
}

然而,这只有当你的视图控制器嵌入在UINavigationController中才有效。我强烈建议这样做,而不是自己创建一个导航栏。如果你坚持自己创建导航栏,你可以通过以下方式更改标题:

navigationBar.topItem.title = "some title"

如果你想从嵌入在导航控制器中的Page view controller的子视图控制器中更改标题,它看起来像这样:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.parent?.title = "some title"
}