导航栏标题设置

15

我有一个带有导航栏的基本视图控制器,这是B视图控制器,所以我正在执行一个segue来到这里,并尝试像这样更改标题:

override func viewDidLoad() {
    debugPrint(self.selectedName)
    super.viewDidLoad();
    self.navigationItem.title = "A NEW TITLE"
}

但它并没有做任何事情。

在此输入图片描述


你能添加你的Storyboard场景吗? - Anbu.Karthik
你的屏幕截图来自故事板。只有在实际运行代码时,它才会影响屏幕。或者直接在故事板中更新标签。 - Fogmeister
1
你的视图控制器是否嵌入了导航控制器,还是只是在视图中添加了一个导航栏对象? - xoudini
我赞同 @xoudini 的观点,我认为还有另外一种出路。 - Saheb Roy
@Fogmeister 更新了 - Uffo
显示剩余6条评论
5个回答

19

要在导航栏上设置标题,我们只需要使用以下代码:

self.title = "Your Title"

我遇到了一个问题,在使用Xcode 14构建iOS 16时,这个程序根本无法运行。目前还没有找到任何解决方案的线索。 - João Eduardo

16

对于Swift 3:

如果您想设置导航栏标题而不使用UINavigationController,那么请将导航项的输��口设置为

 @IBOutlet weak var navItem: UINavigationItem!

然后在viewDidLoad()中写入

navItem.title = "ANY TITLE"

12

有很多方法可以实现这一点。以下是其中的几种。

首先要做的事情。

如果您准备好“嵌入”导航控制器,或者如果您已经有一个,则可以使用以下代码访问它。

self.navigationController?.navigationBar.topItem?.title = "Your Title"

现在可以进行更多的自定义操作:

  1. 在 ViewController 场景中放置一个 UINavigationBar 对象并添加约束。
  2. 创建新放置的 UINavigationBar 的 outlet,如下所示 -

    @IBOutlet weak var orderStatusNavigationbar: UINavigationBar!
    
  3. 现在使用outlet设置标题。

    orderStatusNavigationbar.topItem?.title = "Your Title"
    

以上所有代码都是使用Swift 3编写的,但也适用于较低版本的Swift(至少在Swift 2.0上)。

希望这可以帮助您。


1
我使用了这个解决方案,它完美地运行了!与被接受的答案不同。 - hamsternik

4

Swift 4 / XCode 10

  1. 添加新的NavigationBar -> 将其拖放到您的视图中

  2. 按下 CTRL 添加新的Outlet Action

  3. 示例:@IBOutlet weak var main_navbar: UINavigationBarViewController 类中。

  4. 然后设置标题:main_navbar.topItem?.title = "YOUR TITLE"

这个方法适用于我,希望对你也有用。 - rustenter image description here


3
好的,所以你需要首先将整个内容嵌入到导航控制器中,然后将该导航控制器作为初始控制器。
选择你的故事板,点击第一个控制器,然后点击这个 - img 然后删除你在最后一个名为“title”的控制器上设置的导航栏。
原因是你试图更改导航控制器的导航栏标题,但它没有导航栏,因此无法更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接