斯坦福iTunes U CS193P作业3,两个ViewControllers之间的通信

时间:2012-07-15 07:59:27

标签: objective-c uiviewcontroller protocols communication cs193p

好的,我知道新图形vc的模型将成为计算器大脑的一个子类,但是如何将CalculatorBrain的程序堆栈从旧的VC获得到我的新VC的GraphingBrain?我是否必须在Storyboard-segue上下载?

我在新轴设置上进行捏合和平移,以及在新图形脑和图形vc之间进行通信的代理。但是不是我的programStack用户在“陷入”旧MVC之前输入的那个?

我认为我已经把这个概念搞定了,但是我没有看到通信方式的发生方式。

提前致谢!

***对于那些不遵循课程的人,我有两个由NavigationController链接的MVC。用户输入一系列数字,并且存储在其中的操作(在第一MVC中)然后存储在第一MVC的模型中的阵列中。当按下一个按钮时,它会转移到一个新的MVC,它需要在之前的MVC中输入的数组。如何在两个看似独立的MVC之间传输该阵列?我不认为我可以在第二个VC中拥有属性并从第一个VC设置它,因为它(第二个MVC)尚未实例化。这可能与preparteToSegue有关,但我不确定。

1 个答案:

答案 0 :(得分:0)

经过CS193P(超过一半),我想我理解你的问题。以下是您需要记住的内容:

要向MVC(C - > V)路径发送属性值,在这种情况下,V保存另一个MVC;使用PrepareForSegue。无论目标是否已实例化,您都需要做一些事情:

  1. 导入,在第一个类的.h或.m文件头中,第二个类。
  2. 在prepareForSegue中,创建第二个类的实例并将其设置为等于segue.destinationViewController。你需要将后者类型化为第二类。
  3. 现在,您可以将您创建的(第二个类)实例的属性设置为您想要的任何值。
  4. 您不能从prepareForSegue为第二个类设置任何IBoutlet值,因为直到ViewDidLoad之后才会设置IBOutlets。
  5. 由于某些奇怪的原因,如果您确实使用条件来检查segue.identifier,则需要将语句括在{}中,即使它只是一个语句。
  6. 希望这有助于让果汁流动......

    KMB