UITabBarController 中的 UISplitViewController - SplitView 导航栏故障/错误或我做错了什么?

UISplitViewController in UITabBarController - SplitView Navigation Bar Glitch / Bug or me doing something wrong?

POST

结尾的问题

问题:UISplitViewController 嵌入 UITabBarController 时,我发现了一个奇怪的行为。设置非常简单,无需任何编码即可复制。创建一个基于 StoryBoard 的应用程序并将 UITabBarController 拖到 StoryBoard 上并使其成为初始视图控制器。然后拖一个UISplitViewController到棋盘上,使它成为UITabBarController的一个项目。将 UISplitViewControllers 细节视图控制器也嵌入到 UINavigationController 中。最后,将主视图控制器和细节视图控制器的背景颜色设置为引人注目的颜色。

故事板应如下所示:

第1步: 运行设备上的应用程序可以同时显示主要和详细信息(例如iPad或大屏幕iPhone).您应该注意到母版没有延伸到栏下,而是 UISplitViewController 的背景闪耀。

第 2 步: 将屏幕旋转为纵向,以便母版折叠。从侧面轻扫以显示主人。此时,两个导航栏都显示正确的背景颜色。

第 3 步: 将屏幕旋转回横向。现在细节有 UISplitViewController 的背景,母版显示正确的颜色。

调查结果:

问题:

5 个月后仍然没有解决这个问题。此外,当我在开发另一个应用程序时再次遇到这个问题时,我发现这个 2015 年的旧 post 有同样的问题:Navigation bar for split view controller is darker when inside a tab bar controller

所以我猜 Apple 无意修复他们自己的控制器,我们开发人员被搞砸了。我们可以在底部有一个 UITabBar,同时在上面显示一个带有适当的半透明 UINavigationBars 的 UISplitViewController 的唯一方法是实现我们自己的容器视图控制器。

我终于解决了这个问题,方法是使用一个普通的 UIViewController,UITabBar 固定在底部,同时使用 UIViewController 容器 API 到 show/hide 我的 UISplitViewControllers。