gpt4 book ai didi

ios - 在 UINavigationController 中,topViewController、visibleViewController、presentedViewController 之间有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 05:12:25 26 4
gpt4 key购买 nike

UINavigationController 有 3 个 Controller ,听起来都与我非常相似:topViewControllervisibleViewControllerpresentedViewController

您在哪些场景中使用这些 Controller ?

最佳答案

  • topViewController - 最后一个 View Controller 使用 UINavigationController 的 pushViewController(_:animated:) 方法推送到 UINavigationController。将之前的 Controller 推开并替换它。
  • presentedViewController - 显示在另一个 View Controller 之上的 View Controller (基本上它覆盖了另一个 View Controller 而不是将其推开)。代替 UINavigationController 的 pushViewController(_:animated:) 你使用 UIViewController 的 present(_:animated:completion:)方法。 注意:呈现的 View Controller 也称为模态视图 Controller ,可以在没有 UINavigationController 的情况下使用。
  • visibleViewController 可以与 topViewController 或 presentedViewController 相同。如果你最后推到 UINavigationController 上,它将与 topViewController 相同。如果您最后在 UIViewController 上呈现,它将与 presentedViewController 相同。

示例:

  1. 将 UIViewController viewA 推送到 UINavigationController。
  2. viewA 在其自身上呈现 UIViewController viewB
  3. viewA 是 topViewController。
  4. viewB 呈现在 ViewController 中。
  5. viewB 也是 visibleViewController。
  6. 关闭模态 viewB
  7. viewA 现在是 topViewController 和 visibleViewController。 (没有 presentedViewController。)
  8. 弹出 viewA
  9. viewA 不再是 visibleViewController 或 topViewController。

总的来说,visibleViewController 似乎更有用,因为它会告诉您当前正在显示的 View ,无论它是被推送还是呈现。

关于ios - 在 UINavigationController 中,topViewController、visibleViewController、presentedViewController 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33395463/

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