Swift 2:更改与选项卡栏控制器相关的视图上的导航标题

问题描述 投票:1回答:6

我想更改视图的导航标题,该标题与标签栏控制器相关,标签栏控制器与导航控制器相关(参见图片)

我不知道该怎么做。

在基本视图中,我只需要在ViewController.swift:self.title="test"中执行此操作

但是在这里,这一行更改了标签栏的标题,但我想更改导航的标题。

Main.Storyboard :

ios swift2 xcode7 navigationbar
6个回答
5
投票

根据苹果最佳实践,您不应该在导航控制器中包含标签栏控制器,而应该为每个标签设置视图控制器,这需要一个在其自己的导航控制器内。

由于导航控制器中包含标签栏控制器,可能会出现各种问题。

根据标准实施时,您可以使用self.title设置标题

使用标签栏控制器的应用程序还可以在一个或多个选项卡中使用导航控制器。在同一用户界面中组合这两种类型的视图控制器时,标签栏控制器始终充当导航控制器的包装器。

https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html


3
投票

使用需要使用此属性:

self.navigationItem.title = "foo"

3
投票

在Swift 3上,在UIViewController中,覆盖viewDidAppear方法并添加以下代码片段:

if let tabController = self.parent as? UITabBarController { 
    tabController.navigationItem.title = "My Title"
}

1
投票

在您的故事板中嵌入UINavigationController并放入:

navigationBar.topItem.title = "Nav title"

1
投票

我也很难更改子视图控制器的导航栏标题。解决方案是:

@IBOutlet weak var navigationBar: UINavigationBar!

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationBar.topItem!.title = "Pickup Address"
}

0
投票

适用于Swift 3+

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.navigationItem.title = "Title"
}
© www.soinside.com 2019 - 2024. All rights reserved.