我可能创建的RootViewController,AppDelegate和View Controller类有什么区别?

kum*_*mar 14 iphone xcode cocoa-touch ios

我正在尝试学习iPhone的编程,我一直看到这些文件,我不确定这些文件的每个文件和内容何时在执行为iPhone构建的程序时引用.我正在尝试按照在线提供的教程和技巧,但没有一点一点的比较或类似的东西.如果你们中的任何一个人能够列出一些基本的差异,例如每个文件何时被引用以及理想情况下应该进入每个文件等等,那将是很好的.谢谢你的时间.

Pet*_*ter 53

通常,代理可以被认为是事件处理程序.因此,AppDelegate是整个应用程序的主要事件处理程序.当应用程序启动,何时退出,推送通知进入,应用程序进入后台等时,会告知它.其中一个事件 - applicationDidFinishLaunching - 通常负责创建应用程序窗口并添加视图那个窗口.

在大多数应用程序中,添加到窗口的视图实际上由UIViewController控制.每个UIViewController都负责管理一个主视图及其所有子视图的外观.例如,UITableViewController负责管理UITableView(主视图)和插入该UITableView的所有UITableViewCells(子视图).UIViewController通常充当它负责的视图的委托(事件处理程序).当用户点击表视图单元格时,将调用UITableViewController中的方法.当用户滑动删除时,调用单独的方法.

通用UIViewController提供相同的基本功能,但适用于自定义视图.例如,UIViewController可能负责显示一些文本视图和一个按钮.UIViewController将创建其主视图,文本视图和按钮视图.文本视图和按钮视图将作为子视图添加到视图控制器的主视图中.UIViewController将自己注册为文本视图中事件的委托(例如,当用户在文本视图中完成文本编辑时学习).它还会注册一种方法来处理来自其拥有的按钮的按钮按下.当发生任何这些已注册的事件时,将调用UIViewController上的方法,允许您执行所需的任何操作.

rootViewController是一种与导航控制器一起使用的特定类型的视图控制器.如果您想要一个具有典型iOS导航视图层次结构的应用程序,您的AppDelegate通常会将UINavigationController添加到应用程序的窗口.那个UINavigationController没用,实际上没有要显示的内容.这就是rootViewController发挥作用的地方.您负责提供视图控制器(例如上面描述的视图控制器)作为存储在UINavigationController的视图堆栈中的第一个视图.当应用程序启动时以及用户从UINavigationController的堆栈中弹出后续ViewControllers时,将显示此视图.

我意识到长篇大论 - 但希望它有所帮助.