gpt4 book ai didi

ios - 如何检测 UINavigationController 动画何时结束?

转载 作者:技术小花猫 更新时间:2023-10-29 10:56:54 24 4
gpt4 key购买 nike

我希望这是一个简单的问题。如果我有一个 UINavigationController 并且我将一个新的 View Controller 推送到带有动画转换的堆栈上,我如何检测动画何时完成以及新的 View Controller 何时出现在屏幕上?

我有几个场景需要推送一个新的 Controller ,然后它必须执行长时间运行的操作。我想先推送新 View ,以便在我开始长时间阻塞主线程之前屏幕上有一些东西。如果我在长时间运行的任务之后立即执行推送,那么 View 将不会显示,直到两者都完成并且主线程能够再次处理事件。

所以,一旦动画完成并且 View 显示在屏幕上,我想做的是能够在新 Controller 中检测到,然后开始任务。

最佳答案

+1 @DHamrick 关于完全不阻塞主线程的建议。

要回答最初的问题,您可以在两个地方检测到 viewController 的变化:

  1. 您刚刚推送的 viewController 将收到 viewWillAppear:viewDidAppear:消息。如果您想知道特定的 viewController 何时出现,请实现这些方法。

  2. @Mike Z 提到的navigationController:didShowViewController:animated: 方法被发送到navigationController 的delegate。 .您需要指定一个对象作为该委托(delegate)才能接收此消息。然后您将每次知道 viewController 出现的时间。

关于ios - 如何检测 UINavigationController 动画何时结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150231/

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