Swift 2:更改与标签栏控制器相关的视图的导航标题

yuvru6vn  于 2022-11-06  发布在  Swift
关注(0)|答案(6)|浏览(164)

我想更改视图的导航标题,该标题与选项卡栏控制器相关,而选项卡栏控制器又与导航控制器相关(请参见图片)
我不知道该怎么做。
对于一个基本视图,我只需要在ViewController中执行该操作。swift:self.title="test"
但在这里,这一行更改了选项卡栏的标题,但我想更改导航栏的标题。
Main.Storyboard :

vltsax25

vltsax251#

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

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

t1rydlwq2#

使用时需要用到这个属性:

self.navigationItem.title = "someTitle"
emeijp43

emeijp433#

根据Apple的最佳实践,您不应该在导航控制器中包含标签栏控制器,而应该为每个标签(需要在其自己的导航控制器中包含一个标签)提供视图控制器。
在导航控制器中包含选项卡栏控制器会产生各种问题。
当根据他们的标准实现时,你可以使用self.title设置标题
使用标签栏控制器的应用程序也可以在一个或多个标签中使用导航控制器。当在同一用户界面中组合这两种类型的视图控制器时,标签栏控制器始终充当导航控制器的 Package 器
https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html

iyfjxgzm

iyfjxgzm4#

在情节提要中嵌入UINavigationController并放置:

navigationBar.topItem.title = "Nav title"
cyvaqqii

cyvaqqii5#

我也很难改变一个子视图控制器的导航栏标题。解决办法是:

@IBOutlet weak var navigationBar: UINavigationBar!

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

euoag5mw6#

适用于Swift 3+

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

    self.navigationItem.title = "Title"
}

相关问题