请清除有关UIViewController
我发现了这篇文章Abusing UIViewController
,这里是链接link1& link2
和总结点
这是作者(和Apple的)建议简而言之:
rootViewController
的{{1}}应该是唯一具有可见视图的UIWindow
。UIViewController
。UIViewControllers
中有多个UIViewController
挂起,则其中只有一个会收到有关方向更改的消息。其他人不会收到这些消息。UIWindow
来接收有关方向或生命周期消息更改的消息,例如UIViewControllers
,viewDidAppear:
,viewWillAppear:
和{{1}即使他们继承自viewDidDisappear:
。只有最顶层的viewWillDisappear:
肯定会收到这些消息。 请清除第2和第3点
因为当我们使用UIViewController
或UIViewController
时,我们会使用UINavigationController
的多个子类。 ios设备只有一个屏幕.....
这篇文章Abusing UIViewController突出了苹果的建议
注意:如果要将视图层次结构划分为多个子区域 并分别管理每个,使用通用控制器对象(自定义 从NSObject下降的对象)而不是视图控制器对象 管理每个分区。然后使用单个视图控制器对象 管理通用控制器对象。
并在UITabBarController
标题下的UIViewController
标题
很少有iOS应用只展示一屏内容。相反,他们 首次启动时显示一些内容,然后显示和隐藏其他内容 响应用户操作的内容。这些过渡提供了一个 显示大量内容的单一统一用户界面,只是没有 一下子......
我的要求是 NOT 使用任何容器或模态或popover,我想进行手动管理,我有两个视图控制器Coordinating Efforts Between View Controllers
& VC1
。 VC2
是根视图控制器,现在我想切换/转接/移动到VC1
我该怎么办?
VC2
应该是VC1
的唯一子类,而UIViewController
应该是VC2
的子类来管理NSObject
层次结构中的特定视图?(由苹果医生展示隐藏的东西)。
VC1
也可以是VC2
的子类,我只是从根视图中删除UIViewController
并以根视图添加VC1
?
或者正确的方法是什么?
答案 0 :(得分:1)
容器视图控制器(如UINavigationController)允许解决每个屏幕的一个VC规则。从iOS 5开始,开发人员已经能够并允许编写我们自己的容器控制器(实际上与普通VC没有太大区别)。通常,这意味着编写非VC控制器对象比以前更少。
在您想要替换根视图控制器的情况下,您的选项2更有意义。尽可能使用VC,而不能使用非VC控制器对象。由于您正在替换整个屏幕的内容,因此只需切换UIWindow rootViewController
最有意义(编辑:交替地,许多开发人员只会使用导航控制器来呈现第二个视图,因为它简单方便)。