现在,我有一个登录视图控制器,可以根据用户交互动态隐藏和添加子视图。拥有一个视图控制器或多个视图控制器的多个UIViews更好吗?
答案 0 :(得分:1)
当然,出于多种原因,拥有多个视图控制器会更好:
答案 1 :(得分:1)
如果你需要关心任何一个孩子的视图生命周期,那么拥有孩子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中推送和弹出视图控制器,或者以模态方式呈现ViewControllers,你肯定应该使用UIViewControllers。
此外,您绝对不应该将所有视图代码放在单个视图控制器中。您应该使用UIView的子类,或其他一些确保将组件分开的机制。
例如,你可能有:
LoginViewController - 组织和隐藏并显示各个视图
SignInView - 显示签到表格
RegisterView - 显示寄存器形式
......等等。
答案 2 :(得分:0)
拥有多个视图控制器更好,因为您可以更轻松地单独编码它们。导航也会很好,这对用户体验有益。 内存管理将是高效的。 MVC架构(模型视图控制器)将成为Massive View Controller,在调试时会很头疼。
查看此答案以获得更清晰的信息。我认为你在ViewController和View之间感到困惑。
在链接中查看此问题的已接受答案。希望能帮助到你。 About viewController's "viewDidLoad" and "viewWillAppear" methods