我有一个最初为iPhone制作的应用程序。在一个故事板场景中,有两个容器视图嵌入了两个不同的视图控制器,以不同的方式显示模型。用户可以通过一些切换按钮切换显示其中任何一个。
现在我想为iPad做好准备,可以同时显示两个嵌入式视图。最初的直觉是使用UISplitView
,但尝试感觉比需要更麻烦:
UISplitViewController
。所以,现在我想:为什么不保持(几乎)所有相同的东西并将容器视图并排放置,模拟拆分视图,并保持相同的旧控制器和逻辑(除了不需要切换按钮)。
但是,分裂观点必须存在,所以我的问题是:这是一个好方法吗?我可能会错过分割视图的内置功能和功能?我的特定应用程序仅用于横向,因此纵向自动分割视图与我无关。
答案 0 :(得分:0)
Uisplitviewcontroller仅仅是具有委托的容器(主要控制主视图的show hide行为。) 为了简单使用,就像你的情况一样,这只是一个方向,我认为uisplitviewcontroller比手工制作更好。
临: 简单易用 在方向更改时,它会为您提供主视图的参考,以防您隐藏它并且您可以通过弹出窗口显示它(首选以纵向模式保存屏幕)
缺点: Uisplitviewcontroller将始终是您的应用程序的rootview控制器。 (黑客也是这样,但仍然)。因此,如果旅游应用程序使用登录屏幕,您需要以模态方式显示。这意味着您的主应用程序视图将出现在登录本身之前(虽然通过模态隐藏,但在生命周期中它将在登录屏幕之前加载。 我发现uisplitviewcontrol不太成熟。下面是示例,我的应用程序使用滑动来关闭/显示主视图,一旦我需要在主视图可见时从详细信息视图中以模态方式显示屏幕。模态屏幕在主视图和详细视图之间分层。虽然我通过呈现主人自己的视图来解决这个问题,但我仍然认为uisplitview控制是一个统一的控制,这很奇怪。
答案 1 :(得分:0)
在发明UISplitViewController时(iOS 3.2),创建自己的容器视图控制器是非法的,即视图控制器的视图包含其他视图控制器的视图。您必须仅使用Apple提供的容器视图控制器。所以UISplitViewController正在做的事情无法以任何其他方式完成。
在iOS 5中,引入了自定义容器视图控制器,并且UISplitViewController立即变得不必要;编写自己的替代方案变得合法。我甚至写了一个(警告,这是iOS 5代码):
所以我的建议是,只要您了解自定义容器视图控制器的工作方式,就可以做您喜欢的事情!