现在,我有一个登录视图控制器,该控制器根据用户交互动态隐藏和添加子视图。具有一个视图控制器或多个视图控制器的多个UIView更好吗?

最佳答案

如果您需要关心任何子级中的视图生命周期,则拥有子级UIViewControllers的好处就是。例如,如果在某些子视图(子视图)中需要知道它是否似乎触发了某些逻辑,那么最好使用子UIViewControllers。

另一个原因可能是,如果您想在自定义容器中使用视图控制器转换,如Apple在UIViewController类参考中所述:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/index.html#//apple_ref/occ/instm/UIViewController/transitionFromViewController:toViewController:duration:options:animations:completion

但是,对我来说,听起来好像并不需要它,听起来就像只是显示/隐藏您的视图,或者为它们添加动画效果。
但是,如果您的视图不关心其中的任何一个,而只需要呈现UI元素,我会说使用子级UIViewControllers会增加额外的复杂性,而不会带来太多好处。

这是基于以下两种假设:所有视图都位于单个UIViewController的视图上。如果要在UINavigationController内推送和弹出视图控制器,或者以模态显示ViewController,则绝对应该使用UIViewControllers。

另外,您绝对不应该将所有视图代码放入该单个视图控制器中。您应该使用UIView的子类,或者使用其他确保分开组件的机制。

例如,您可能有:

LoginViewController-组织和隐藏并显示各个视图
SignInView-显示登录表单
RegisterView-显示注册表
...等等

10-08 06:56