在 IOS 中从视图导航到另一个视图时的默认时间是多少

Posted

技术标签:

【中文标题】在 IOS 中从视图导航到另一个视图时的默认时间是多少【英文标题】:What is the default time taken while navigating from for view to another view in IOS 【发布时间】:2017-05-03 02:52:06 【问题描述】:

我需要澄清一下,我有 2 个 UIViewController 在按下一个视图控制器的按钮时,我需要导航到另一个。但是我需要知道这个 UIViewContoller 内部花费的时间是多少,当我们这样调用它时。

MyViewController *ins = [[MyViewController alloc]init];
[self.navigationController pushViewController:ins animated:YES];

我们都知道“动画”如果“是”则需要一些时间,我需要那个时间或帮助我计算那个时间。

【问题讨论】:

为什么需要知道?我不会对此做任何假设。 ios 更新中的时间可能会发生变化。 我不能 100% 确定,但我相信在某些情况下,动画可以在包含函数退出之后 安排。所以,你不能依赖时间。通常,依赖于严格的隐式事件排序的模式在 iOS 中非常容易出错。我建议找到解决问题的不同方法。您将很难以一种或另一种方式追踪错误! 【参考方案1】:

不知道为什么会有这个问题,但我做了一个小演示来验证这一点-

没有动画 -

推送前打印的时间范围 - 2017 年 5 月 3 日 11:07:35。7480

推送后打印的时间范围 - 2017 年 5 月 3 日 11:07:35。7550

有动画 -

推送前打印的时间范围 - 2017 年 5 月 3 日 11:09:42。9680

推送后打印的时间范围 - 2017 年 5 月 3 日 11:09:42。9760

@IBAction func buttonTapped(_ sender: Any) 
    let bVC = AHBViewController()
    bVC.view.backgroundColor = UIColor.blue
    let startDate = Date()
    print(dateFormatter.string(from: startDate))
    self.navigationController?.pushViewController(bVC, animated: true)
    let endDate = Date()
    print(dateFormatter.string(from: endDate))


【讨论】:

谢谢您,感谢您的及时答复。任务是我需要检查是否有可能减少从一个控制器到另一个控制器的导航时间。 例如,从您的示例中说“9760 - 9680 = 80”毫秒是导航所花费的延迟或时间。我需要检查将 80 毫秒减少到 70 或 60 毫秒的任何其他可能性。 好的,知道了。我不建议对此进行优化,这是 cocoa touch 中非常基本的功能,我相信 Apple 从一开始就非常重视推送动作的性能。 是的,这是一个小工作,我将尝试,无论如何感谢您的支持。

以上是关于在 IOS 中从视图导航到另一个视图时的默认时间是多少的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图

如何在我的 Xcode Swift 项目的不同导航堆栈中从一个视图控制器屏幕切换到另一个?

如何在 xamarin ios 中从一个视图控制器导航到第二个视图控制器?

如何导航到另一个导航控制器iOS

在 Splitview 中从一个 Detail View 控制器导航到另一个 Detail VC

IOS - 从表视图控制器获取值并将其发送到另一个表视图控制器