首页 文章

使用代理跳过viewcontroller

提问于
浏览
0

我转过几天 . 我有一个3 ViewControllers的层次结构 .

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

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

VC3允许用户返回VC1 .

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

3 回答

  • 1

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

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

    VC3-->del-->VC2-->del->VC1
    
  • 0

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

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

    vc3Instance.delegate = self.delegate
    
  • 0

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

    VC1ViewController *vc1 = self.master.master;
    

相关问题