【问题标题】:presentingViewController returns the parent of the actual presenting view controllerpresentingViewController 返回实际呈现视图控制器的父级
【发布时间】:2015-08-16 03:45:04
【问题描述】:

我正在展示来自另一个视图控制器 (VC1) 的子视图控制器 (VC2) 的视图控制器 (VC3)。 VC3 的presentingViewController 属性返回VC1 而不是VC2。这是预期的行为吗?有没有办法从 VC3 访问 VC2 而无需在 VC3 中设置属性?

【问题讨论】:

    标签: ios uiviewcontroller


    【解决方案1】:

    presentingViewController 将嵌入在导航堆栈中,而 vc2 不在导航堆栈中,而 vc1 在导航中,这就是你得到它的原因。您可以访问 vc1 的childViewControllers,从中可以获取 VC2。或者您可以将 vc2 的 weak 引用保留在 vc3 中,也可以使用该引用。

    1.Apple docs 2.Apple docs

    【讨论】:

    • 感谢您的解释。这是有道理的,但我不记得在 Apple 文档中提到过“导航堆栈”。只是“呈现的视图控制器更新其呈现视图控制器属性以指向呈现它的视图控制器。”你有参考吗?
    • 这就是它的工作原理,如果视图控制器没有出现在导航堆栈中,它将寻找它的祖先,
    【解决方案2】:

    获取引用并执行某些操作的可能性很小,但我仍然建议使用委托模式 - 这是最灵活和最干净的解决方案。

    【讨论】:

      猜你喜欢
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 2016-06-20
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多