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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 2:更改与选项卡栏控制器相关的视图上的导航标题相关的知识,希望对你有一定的参考价值。

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

我不知道该怎么做。

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

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

Main.Storyboard :

答案

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

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

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

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

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

另一答案

使用需要使用此属性:

self.navigationItem.title = "foo"
另一答案

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

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

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

navigationBar.topItem.title = "Nav title"
另一答案

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

@IBOutlet weak var navigationBar: UINavigationBar!

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

适用于Swift 3+

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

    self.navigationItem.title = "Title"
}

以上是关于Swift 2:更改与选项卡栏控制器相关的视图上的导航标题的主要内容,如果未能解决你的问题,请参考以下文章

如何在选项卡栏控制器中更新选项卡上的视图

视图控制器更改选项卡栏图标和操作

从模态视图控制器 ios7 更改选项卡栏应用程序的选定索引

如何在保留选项卡栏的同时将子视图控制器添加到选项卡式视图控制器?

根据标签栏索引更改视图控制器的属性?

Swift:如何使选项卡视图控制器按钮不显示?