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

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

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

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

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


当前回答

斯威夫特5.1

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

其他回答

通常,最好的做法是在UIViewController上设置标题。通过这样做,UINavigationItem也被设置了。通常,这比以编程方式分配和初始化一个没有链接到任何东西的UINavigationBar要好。

你错过了UINavigationBar设计的一些好处和功能。这里有一个文档链接,可能会对您有所帮助。它讨论了你可以在实际栏和UINavigationItem上设置的不同属性。

只要记住:

你失去了返回按钮的功能(除非你自己连接) 内置的“从左侧拖动向后滑动”手势被取消

UINavigationController是你的朋友。

如果你还没有在你的storyboard视图控制器中创建导航栏,这是可行的。

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

如果你已经在你的storyboard视图控制器中创建了导航栏,这将会很有帮助。

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

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

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

在viewDidLoad

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

斯威夫特3

我为故事板中的导航栏(来自对象浏览器)所附带的导航标题栏项创建了一个出口。然后我起诉了下面这句话:

navigationBarTitleItem.title = "Hello Bar"