我转了几天。我有 3 个 ViewController 的层次结构。
从 VC1 开始,从那里你可以加载 VC2。在 VC2 中,您可以加载 VC3。
我的导航工作正常 VC1->VC2->VC3 和向后相同。
VC3 允许用户返回到 VC1。
我想知道是否可以告诉 VC3 VC1 现在是它的代表。它适用于 VC2,但我想在 VC1 中使用保存在 VC3 中的数据。
我转了几天。我有 3 个 ViewController 的层次结构。
从 VC1 开始,从那里你可以加载 VC2。在 VC2 中,您可以加载 VC3。
我的导航工作正常 VC1->VC2->VC3 和向后相同。
VC3 允许用户返回到 VC1。
我想知道是否可以告诉 VC3 VC1 现在是它的代表。它适用于 VC2,但我想在 VC1 中使用保存在 VC3 中的数据。
创建一个委托以将值从一个类传递给另一个类。然后在 VC1 和 VC2 中设置委托,其中 VC1 从 VC2 接收,VC2 从 VC3 接收
然后从 VC3 调用委托并将值传递给 VC2。在 VC2 中,被调用的方法实现其委托到 VC1 的调用,并且值在 vc1 中
VC3-->del-->VC2-->del->VC1
我建议例如在每个视图控制器中添加一个名为“master”的弱属性,并使其指向呈现它的视图控制器。完成此操作后,您可以通过以下方式从 VC3 访问 VC1(及其所有数据):
VC1ViewController *vc1 = self.master.master;
如果 VC1 是 VC2 的委托,您可以将 VC2 的委托属性分配给 VC3 的委托属性
在 VC3 被推入导航堆栈之前的 VC2 @implementation 中:
vc3Instance.delegate = self.delegate