gpt4 book ai didi

ios - 我应该在模态 UIViewController 或呈现它的 UIViewController 上调用dismissViewController吗?

转载 作者:行者123 更新时间:2023-12-01 17:41:28 25 4
gpt4 key购买 nike

它似乎在任何一种情况下都有效,但为什么以及如何,以及哪种方法是最好的?

最佳答案

为什么以及如何

假设 View Controller A 呈现了 B,B 依次呈现了 C。

当您调用 dismissViewControllerAnimated:completion: ,iOS 会检查您调用它的 View Controller 是否在其 presentedViewController 中有一个子级。属性(property)。如果是这样,那么它会解除该 Controller 。

因此,如果我在我们的示例中在 B 上调用它,它会忽略 C,但如果我在 A 上调用它,它会忽略 B(这会带走 C)。

如果我在 C 上调用它,那么它没有 child 。于是 iOS 检查 presentingViewController属性(property)。如果已设置,它会要求它关闭其 Controller 。因此,如果我在 C 上调用它,iOS 会将请求发送回 B,B 会拒绝 C。

因此,在 B 或 C 上调用该方法将摆脱 C,而在 A 上调用该方法将摆脱 B 和 C。

最佳实践

每次都在 B 上调用它,在呈现的东西上调用它。这是

  • 不那么令人困惑,因为您的出席和解雇将在同一个地方,并且
  • 更多的 future 证明,因为在 future 的某个时候,您可能会让 C 呈现另一个 View Controller (D),然后解雇会突然中断(它会突然开始解雇 D,而不是解雇自己)。
  • 关于ios - 我应该在模态 UIViewController 或呈现它的 UIViewController 上调用dismissViewController吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047430/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com