【问题标题】:Skip a viewcontroller with delegates跳过带有委托的视图控制器
【发布时间】:2013-03-25 10:20:00
【问题描述】:

我转了好几天。 我有 3 个 ViewController 的层次结构。

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

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

VC3 允许用户返回到 VC1。

我想知道是否可以告诉 VC3 VC1 现在是它的委托。 它可以在 VC2 中正常工作,但我想在 VC1 中使用 VC3 中保存的数据。

【问题讨论】:

    标签: iphone ios objective-c delegates viewcontroller


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      在 VC3 被推入导航堆栈之前的 VC2 @实现中:

      vc3Instance.delegate = self.delegate
      

      【讨论】:

        【解决方案3】:

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

        VC1ViewController *vc1 = self.master.master;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-03-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-27
          • 2019-06-28
          • 1970-01-01
          相关资源
          最近更新 更多