【问题标题】:Navigation Controller Header is not showing导航控制器标题未显示
【发布时间】:2024-01-18 08:47:01
【问题描述】:

所以,这里我基本上有这个布局

但是当我构建成功时,我看不到导航控制器的标题。

我能做什么?

【问题讨论】:

  • 拆分 2 个问题,直奔主题(无需介绍),较小的图像,从模拟器(命令-s)保存屏幕而不是屏幕抓取,如果您想要屏幕抓取,请使用命令- shit-4 + 空格键 + 点击整个窗口。
  • 感谢编辑@SwiftArchitect
  • 我的荣幸。请单独发布第二个问题...(我删除了它)

标签: ios swift uitableview uinavigationcontroller


【解决方案1】:

这是你想要模仿的:

  • UITabBarController 设置为是初始视图控制器
  • 为每个场景添加一个关系,不管是不是UINavigationController
  • 如果场景是UINavigationController,它将像任何根导航控制器一样运行,具有自己的视图堆栈、后退按钮等。

运行上面的应用程序,然后点击 Item 2 将显示这个导航控制器:


如果您无法在启动时将UITabBarController 设为初始视图控制器,您可以稍后使用此技术将其设为root

let newViewController = self.storyboard?.instantiateViewControllerWithIdentifier("id")
                        as? UIViewController
self.view.window?.rootViewController = newViewController

这将展示上面的架构,尽管没有动画(也没有任何返回的方式)。非常适合入职或登录屏幕。


Xcode 7+iOS 9+

上测试

【讨论】:

  • 好吧,你看,它前面有一个登录页面..所以我不能将标签栏控制器作为初始视图控制器
  • 是的,那行得通。我所做的是删除初始导航控制器,然后在注册页面上添加一个取消按钮。
  • 登录页面还有另一种解决方案:登录完成后,使用self.view.window?.rootViewController = tabBarController 之类的内容。它将用新的 vc 替换您原来的 vc(无动画)
  • 对不起,打扰了。但是你上面的代码我应该把它放在哪里?我尝试将其放入为 MainTabBarController 创建的新文件的 viewDidLoad 中。
  • 在你的IBAction处理程序中使用上面的代码,你通常会推送一个新的视图控制器。
【解决方案2】:

将您的 TabBar 控制器设置为初始视图,并确保删除链接到它的导航控制器,然后它应该可以正常工作。

【讨论】: