UISplitViewController:为啥我不应该在导航或标签栏界面中显示它?

Posted

技术标签:

【中文标题】UISplitViewController:为啥我不应该在导航或标签栏界面中显示它?【英文标题】:UISplitViewController: Why should I never present it inside of a navigation or tab bar interface?UISplitViewController:为什么我不应该在导航或标签栏界面中显示它? 【发布时间】:2010-11-13 18:44:02 【问题描述】:

来自 Apple:“您永远不应该在导航或标签栏界面内显示拆分视图。”

他们没有说为什么,他们只说“应该”不。如果我这样做会发生什么?我可以想象很多我想要的好的用例!

【问题讨论】:

【参考方案1】:

您的应用程序可能会崩溃。 UISplitViewController 被设计为 VC 堆栈中的根视图控制器。

所以问题: Split view controller must be root view controller

另外,如类参考中所述:

拆分视图控制器没有 自己的重要接口。它的 工作是协调演示 它的两个子视图控制器和 管理之间的过渡 不同的方向。

【讨论】:

CRef 中的声明并没有解释为什么它会不好:) 理论上,让某种控制器管理在根视图控制器中彼此相邻布置的两个视图是没有问题的导航控制器。 作为一名 ios 开发人员,我意识到 Apple 并不总是解释他们所做的一切或为什么这样做;我们只需要顺其自然。【参考方案2】:

我写了相关的this question。正如埃文所说,通常你只需要顺应苹果的要求。我试图绕过他们的限制;它失败了。如果您做任何 Apple 不希望您做的事情,UISplitViewController 将非常脆弱。

【讨论】:

以上是关于UISplitViewController:为啥我不应该在导航或标签栏界面中显示它?的主要内容,如果未能解决你的问题,请参考以下文章

为啥弹出嵌套在 UISplitViewController 中的 UINavigationController 的控制器会为整个 splitView 设置动画?

为啥我的一些视图控制器没有收到 didReceiveMemoryWarning?

UISplitViewController 一致分隔符

将 UIToolBar 放在 UISplitViewController 上方?

自定义 UISplitViewController?

苹果对 UISplitViewController 的看法?