我一直想知道什么时候在iPhone上使用UIView还是UIViewController。
我知道你不应该使用UIViewController,除非它是一个全屏视图,但是还有什么其他的指导原则呢?
例如,我想要构建一个模式覆盖--一个可以在当前屏幕上滑动的屏幕。如果这个模式覆盖是全屏的,那么它应该是一个UIViewController吗?上一次我构建这样的东西时,我对UIViewController进行了子类化,但现在我想知道这是否正确。
发布于 2009-11-07 06:27:44
这是一个很好的问题。
我的基本经验法则。应用程序的每个主要“页面”都有自己的视图控制器。我的意思是,在应用程序设计的线框阶段,作为自己的实体存在的所有东西最终都将由自己的View Controller管理。如果有一个在现有屏幕上滑动的模式屏幕,我会将其视为一个单独的“页面”,并为其提供自己的视图控制器。如果存在覆盖现有页面的视图(如加载屏幕或帮助弹出窗口)。我会以不同的方式对待它们,将它们实现为UIView子类,并将逻辑保留在“页面”视图控制器中。如果弹出窗口有行为,我将使用委托模式与页面视图控制器通信。
我希望这能帮到你。这在很大程度上是一个哲学和架构问题,关于它可以写很多东西。
发布于 2009-11-07 06:30:52
只要视图是全屏的,并且有出口/操作和/或子视图,我就会使用UIViewController。
发布于 2009-11-07 06:44:38
把屏幕上的所有东西都放到一个UIViewController中,直到视图控制器开始有太多的代码,然后将屏幕分解成一个主视图控制器包含的多个UIViewControllers……
要将其放入您的答案的上下文中,请为该模式覆盖创建一个视图控制器。如果你使用导航控制器来显示它,它无论如何都会有一个(你可能应该这样做)。
https://stackoverflow.com/questions/1690852
复制相似问题