深入解析 Split View Controller 的使用与定制
1. Split View Controller 的响应方式
Split View Controller 根据其展开或折叠状态,界面会有两种不同的响应方式:
- iPad(展开状态) :新的视图控制器会成为 Split View Controller 的第二个(详情)视图控制器,界面中已可见的详情视图会被替换。
- iPhone(折叠状态) :只有一个子视图控制器,它是一个导航控制器,新的视图控制器会被压入其栈中。
在标准的 Split View Controller 架构中,第二个视图控制器是一个 UINavigationController。在 iPhone 上,会将一个 UINavigationController 压入另一个 UINavigationController 的栈中,这虽然有些奇怪,但由于内部机制,父 UINavigationController 会正确处理:显示子视图时,会显示子 UINavigationController 的 topViewController 的视图及其 navigationItem,子 UINavigationController 的导航栏不会显示在界面中。不过,不要在其他场景模仿这种架构。
2. 大屏 iPhone 上的 Split View Controller 展开
大屏 iPhone(如 iPhone 6/7/8 Plus、iPhone XR 和 iPhone XS Max)是一种混合情况:竖屏时水平紧凑,横屏时则不是。因此,Split Vi