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

我正在尝试为iPhone学习编程,并且不断地看到这些文件,并且我不确定在为iPhone构build的程序的执行过程中何时引用这些文件的每个文件和内容。 我正在尝试关注网上提供的教程和技巧,但是没有一个是通过点比较或类似的方式。 如果你们中的任何一个能够列出几个基本的区别,比如什么时候每个文件被引用以及理想地应该进入每个文件等等,那将是非常好的。 感谢您的时间已经。

一般来说,代表可以被认为是事件处理程序。 因此,AppDelegate是整个应用程序的主要事件处理程序。 它告诉什么时候应用程序已经启动,什么时候会退出,什么时候推送通知,应用程序已经进入后台等等。其中一个事件 – applicationDidFinishLaunching – 通常负责创build应用程序的窗口并添加视图到那个窗口。

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

通用的UIViewController提供了相同的基本function,但对于自定义视图。 例如,UIViewController可能负责显示几个文本视图和一个button。 UIViewController将创build它的主视图,文本视图和button视图。 文本视图和button视图将作为子视图添加到视图控制器的主视图中。 UIViewController将自己注册为文本视图的事件委托(例如,当用户在文本视图中完成编辑文本时的学习)。 它还会注册一个方法来处理源自button的button。 当任何这些注册的事件发生时,UIViewController的方法被调用,允许你采取任何需要的操作。

rootViewController是与导航控制器一起使用的特定types的视图控制器。 如果你想要一个具有典型的iOS导航视图层次的应用程序,你的AppDelegate通常会添加一个UINavigationController到应用程序的窗口。 该UINavigationController没有实际的内容显示是没有用的。 这是rootViewController进入的地方。 你负责提供一个视图控制器(比如上面描述的那个)作为存储在UINavigationController视图堆栈中的第一个视图。 这个视图将在应用程序启动时随时显示,随后用户从UINavigationController的堆栈中popup随后的ViewController。

啰嗦我意识到 – 但希望它有帮助。