了解应用程序委托和视图控制器如何相互关联

XF0*_*F01 7 iphone cocoa

我正在努力掌握Cocoa(Iphone)MVC设计的基本原理,但它非常强硬.我来自网络,书籍等几个示例应用程序..但我发现没有任何与我正在搜索的内容有关,因为大多数示例只是提供了一个简单的应用程序(即带有反面视图的视图控制器和多一点..).那么让我们看看是否有人愿意帮助我指出正确的方向:

  • 我的目标是构建一个有点复杂的应用程序.我想要有以下观点关系:

    1. 演示视图(将有一个控制器加载几个内存密集的变量)

    2. 主菜单视图:导致全新复杂视图的不同选项.例如,一个Begin选项,用于启动应用允许执行的任何操作; 第二个选项,用于执行另一个具有不同视图和操作的复杂任务,一个用于配置选项的选项选项; 一个帮助选项,一个关于选项,等等..

  • 在第一种方法中,我尝试在MainWindow笔尖下的视图中嵌入几个圆角按钮,并带有关联的应用程序委托.这种方法虽然提出了我如何设法在视图/视图控制器之间切换的问题.由于我可能没有完全理解基础知识而没有被捕获的例外,我试图继续进行更"简单"的事情.

  • 然后我来到了Navigation和Tabbar默认的Cocoa控制器.我不想要一个tabbar,虽然它可以适用于这个应用程序的其他部分.然后导航控制器是我认为最适合这种情况的.

  • 因此,如果我构建一个其根是导航控制器的层次结构应用程序,我是否在正确的位置?我已经看到我可以自定义主视图来显示一个自定义表格,其中每个单元格都可以作为一个按钮来生成其各自的视图+ viewcontroller.从这里开始,我可以继续构建这种层次的视图/视图控制器的"叶子节点",对吧?虽然我不喜欢默认情况下提供导航控制器的动画,但我认为我可以摆脱它.

  • 所以总结起来很简单:我想获得一个菜单,就像通常可以在Cocos2d应用程序上看到的那样.

问这个很令人沮丧,我知道它必须简单,但我发现文档非常混乱以及我见过的例子.GUI编程它是一个艰难的学习曲线:/

感谢您提前得到任何答案,请原谅我这篇长篇文章.

Tec*_*Zen 7

因此,如果我构建一个其根是导航控制器的层次结构应用程序,我是否在正确的位置?

几乎.导航控制器(尽管是UIViewController的子类)不控制视图,而是控制其他视图控制器.导航控制器按下并弹出视图控制器,这反过来又使控制器的各个视图加载并变得可见.

因此,"根视图"实际上是由导航控制器topViewController属性中的视图控制器控制的视图.

应用程序委托用于保存导航控制器并告诉它哪个视图控制器首先推入堆栈.之后,视图控制器告诉导航控制器何时推送它们.

否则,你走在正确的轨道上.您应该始终尝试以分层方式在移动平台上显示信息,从最顶层的一般开始,并在深入研究时变得更具体.

你不应该因为发现这种混乱而感到尴尬.90%的介绍/教程信息(包括书籍和Apple资源)专注于界面的gee whiz方面,并且几乎没有告诉您实际的应用程序设计或所有部分在概念上如何组合在一起.