【问题标题】:Navigation Controller doesn't show the title while working with TabBar Controller(Programmatically)导航控制器在使用 TabBar 控制器时不显示标题(以编程方式)
【发布时间】:2022-01-06 08:09:46
【问题描述】:

我使用 navigationController 作为 window.rootViewController。作为 navigationControllerrootViewController,我使用的是 tabBarController。但是当我运行应用程序时,navigationBar 的标题没有显示(我的 Tabbar Controller 出现了,我可以看到我的 viewController。没问题)。我尝试使用 viewDidload 中的以下两个代码在 tabBar 的每个 viewController 中命名 navigationBar,但仍然没有任何改变。

 navigationController?.title = "title"
 navigationController?.navigationBar.topItem?.title = "title"

我在 SceneDelegete 中设置了带有标签栏的 navigationController,如下所示:

let countriesTabbarController = TabBarControllerBuilder.build()
    
    let navigationController = UINavigationController(rootViewController: countriesTabbarController)
    
    window?.rootViewController = navigationController
    window?.makeKeyAndVisible()

如何为 tabBar 的每个 viewController 显示我的 navigationController 标题?

【问题讨论】:

    标签: ios swift uinavigationcontroller uitabbarcontroller


    【解决方案1】:

    每个视图控制器都有一个名为navigationItem 的属性UINavigationItem。如果你设置它的title,如果存在的话,它会显示在导航栏中。

    例如在viewDidLoad,添加这个:

    self.navigationItem.title = "title"
    

    换句话说:标题是在导航控制器堆栈中包含的视图控制器上设置的,而不是导航控制器本身。也没有在导航栏上,这可能也是我现在想不起来的一个很好的理由。

    https://developer.apple.com/documentation/uikit/uinavigationitem

    【讨论】:

    • 感谢您的回复。 self.navigationItem.title = "title" 也不能正常工作。我会说我没有 navigationController 但我可以使用 navigationController 在控制器之间导航
    • 导航栏的标题来自 VC 的 title 属性,所以设置它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多