标签栏控制器内的导航控制器不显示标题

Posted

技术标签:

【中文标题】标签栏控制器内的导航控制器不显示标题【英文标题】:Navigation Controller inside Tab bar Controller not showing title 【发布时间】:2019-11-26 20:13:45 【问题描述】:

我正在开发一个可可触摸框架。在我的框架中,我有一个视图控制器和一个带有不同选项卡的选项卡栏控制器。我正在将框架集成到另一个 ios 项目中。

现在 iOS 项目有一个带有初始屏幕的导航控制器和另一个带有登录屏幕的导航控制器。所以视图层次结构是这样的:

导航控制器 -> 初始屏幕 -> 导航控制器 -> 登录屏幕

在项目中,当登录控制器被推送时,rootview控制器成为登录屏幕的导航控制器

let hkWindow = UIApplication.shared.delegate as! AppDelegate
    hkWindow.window!.rootViewController = self.navigationController

现在的问题是,当我在登录屏幕中注释上面的代码时,我在标签栏控制器中的导航标题工作得非常好,但是使用上面的代码,我的导航项什么也没有显示,甚至没有推送视图控制器上的后退按钮。

当我评论代码时,我的导航栏显示绝对完美

当我取消注释代码时,我的导航栏变为空白

请大家帮忙!

【问题讨论】:

为什么会有两个导航控制器? 我在为第三方供应商工作,他们有 2 个导航控制器。 这里没有足够的信息...您是在 LoginViewController 中设置标题吗?标签栏在哪里发挥作用? 【参考方案1】:

您可以手动设置标题视图,在标签栏控制器中设置

if let tabController = self.parent as? UITabBarController 
     tabController.navigationItem.title = "Transaction history"

【讨论】:

它不起作用,标题不显示。在导航控制器中按下视图控制器后甚至没有后退按钮。

以上是关于标签栏控制器内的导航控制器不显示标题的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式导航到另一个故事板上的导航控制器和标签栏控制器内的视图控制器

导航和标签栏控制器未显示

presentViewController 不显示标签栏或导航栏

在标签栏控制器中嵌入导航控制器会更改视图控制器的安全区域

在不显示标签栏的情况下执行对另一个导航控制器的 segue

导航控制器后标签栏出现黑屏