在 Apple 的开发人员指南中,他们声明:“ Split View Controller 必须始终是您创建的任何界面的根”(see here)。我很好奇是否有人知道他们为什么这样决定。我有一个基于选项卡导航器的应用程序,其中一个选项卡中的内容以 Split View显示很有意义。为什么苹果会反对这种设计?预先感谢您的回答。
-最大
PS 我不是在寻找将 Split View Controller 放入选项卡导航器 Controller 的方法(我能弄清楚的是,即使代码看起来很草率)。我很好奇是否有人知道为什么 Apple 不同意它。
最佳答案
我认为这不一定是用户体验决定,而是技术限制。 UIKit 对 UIViewControllers 的使用方式做了一些假设。包括只有一个 UIViewController 实例的 View 在任何给定时间在给定窗口中可见的想法。现在,由于 Apple 可以访问实现,他们已经能够为自己的“容器 View Controller ”类(UINavigationController、UITabBarController 和 UISplitViewController)设置异常(exception)。我们无法确切地说出这些 Controller 有多少特殊情况,或者它们需要做什么来支持正确显示嵌套的 subview Controller ,但一个结果似乎是 UITabBarController 和 UISplitViewController 除了作为根之外不打算使用窗口的 View Controller 。尝试将它们嵌套在其他容器 View Controller 中可能会导致意外或不可靠的行为。
我试图在此处介绍这些使用 View Controller 的限制和一些可能的替代方法:http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/希望这对您有用,但恐怕这是获取 UI 的唯一可靠方法,您似乎正在寻找它以在单个 UIViewController 的 View 中实现您自己的 Split View样式显示。
关于objective-c - 为什么 Split View Controller 必须始终是您创建的任何界面的根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849688/