使用代理跳过viewcontroller

时间:2013-04-03 16:16:13

标签: iphone ios objective-c delegates viewcontroller

我已经好几天了。 我有3个ViewControllers的层次结构。

从VC1开始,从那里你可以加载VC2。在VC2中,您可以加载VC3。

我的导航工作正常VC1-> VC2-> VC3和向后相同。

VC3允许用户返回VC1。

我想知道是否有可能告诉VC3 VC1现在是它的代表。 它适用于VC2,但我想在VC1中使用VC3中保存的数据。

3 个答案:

答案 0 :(得分:1)

创建委托以将值从一个类传递到另一个类。 然后在VC1和VC2中设置委托,其中VC1从VC2接收,VC2从VC3接收

然后从VC3调用委托并将值传递给VC2。在VC2中,被调用的方法实现其委托给VC1的调用,值在vc1中

VC3-->del-->VC2-->del->VC1

答案 1 :(得分:0)

如果VC1是VC2的委托,您只需将VC2的委托属性分配给VC3的委托属性

在将VC3推送到导航堆栈之前的VC2 @implementation中:

vc3Instance.delegate = self.delegate

答案 2 :(得分:0)

我建议在每个视图控制器中添加一个名为“master”的弱属性,并使其指向呈现它的视图控制器。完成后,您可以通过以下方式从VC3获取VC1(及其所有数据):

VC1ViewController *vc1 = self.master.master;