【发布时间】:2015-08-16 03:45:04
【问题描述】:
我正在展示来自另一个视图控制器 (VC1) 的子视图控制器 (VC2) 的视图控制器 (VC3)。 VC3 的presentingViewController 属性返回VC1 而不是VC2。这是预期的行为吗?有没有办法从 VC3 访问 VC2 而无需在 VC3 中设置属性?
【问题讨论】:
标签: ios uiviewcontroller
我正在展示来自另一个视图控制器 (VC1) 的子视图控制器 (VC2) 的视图控制器 (VC3)。 VC3 的presentingViewController 属性返回VC1 而不是VC2。这是预期的行为吗?有没有办法从 VC3 访问 VC2 而无需在 VC3 中设置属性?
【问题讨论】:
标签: ios uiviewcontroller
presentingViewController 将嵌入在导航堆栈中,而 vc2 不在导航堆栈中,而 vc1 在导航中,这就是你得到它的原因。您可以访问 vc1 的childViewControllers,从中可以获取 VC2。或者您可以将 vc2 的 weak 引用保留在 vc3 中,也可以使用该引用。
1.Apple docs 2.Apple docs
【讨论】:
获取引用并执行某些操作的可能性很小,但我仍然建议使用委托模式 - 这是最灵活和最干净的解决方案。
【讨论】: