何时在iPhone上使用UIView与UIViewController?

And*_*son 55 iphone cocoa-touch objective-c

我总是想知道什么时候在iPhone上使用UIView和UIViewController.

我知道你不应该使用UIViewController,除非它是一个全屏视图,但有什么其他指导原则?

例如,我想构建一个模态覆盖 - 一个将在当前屏幕上滑动到位的屏幕.如果这个模态覆盖是全屏的,它应该是UIViewController吗?我最后一次构建这样的东西,我将UIViewController子类化,但现在我想知道这是否正确.

pio*_*r78 39

来自Apple的适用于iOSView Controller编程指南:

"视图控制器最重要的作用是管理视图层次结构.每个视图控制器都有一个根视图,它包含所有视图控制器的内容.在该根视图中,您可以添加显示内容所需的视图. "

也:

"有两种类型的视图控制器:

  • 内容视图控制器管理应用程序内容的一个独立部分,是您创建的主要视图控制器类型.
  • 容器视图控制器从其他视图控制器(称为子视图控制器)收集信息,并以便于导航或以不同方式呈现这些视图控制器的内容的方式呈现它.

大多数应用程序都是两种视图控制器的混合."


Bra*_*Guy 11

这是一个很好的问题.

我的基本经验法则.是应用程序的每个主要"页面"都获得它自己的视图控制器.我的意思是,在应用程序设计的线框架阶段,作为自己的实体存在的所有内容最终将由其自己的View Controller管理.如果有一个模态屏幕在现有屏幕上滑动,我会认为它是一个单独的"页面"并给它自己的视图控制器.如果存在覆盖和现有页面的视图(例如加载屏幕或帮助弹出窗口).我会以不同的方式对待它们,将它们实现为UIView子类并将逻辑保留在"页面"视图控制器中.弹出窗口的行为我将使用委托模式与页面View Controller进行通信.

我希望这有帮助.这是一个哲学和建筑问题,可以写很多.