推送视图控制器时延迟(iOS)

Posted

技术标签:

【中文标题】推送视图控制器时延迟(iOS)【英文标题】:Delay when pushing view controller (iOS) 【发布时间】:2017-10-04 17:38:12 【问题描述】:

我有一个 UIViewController,称之为ViewControllerB,我试图从 ViewControllerA 推送它。 ViewControllerB 拥有大量来自库(日历、分段控件等)的自定义 UI,以及带有 tableViews 的 UIPageViewController。

我注意到当我推送ViewControllerB 时有 1-3 秒的延迟,并且在使用时间分析器时,我能够追踪到由于在 viewDidLoad 中设置这些 UI 而导致的主线程阻塞。因此,在推送视图控制器之前,该应用似乎需要一些时间来设置 UI。

设置大量 UI 但在推送视图控制器时避免阻塞主线程的最佳方法是什么?

【问题讨论】:

从 viewDidLoad 和 viewWillAppear 方法中删除所有代码并保留在 viewDidAppear 中。 【参考方案1】:

在初始化阻塞主线程时有太多布局。仅在 init、viewDidLoad 和 viewWillAppear 方法中布局必要的内容,以及在 viewDidAppear 中执行的任何其他操作。

【讨论】:

以上是关于推送视图控制器时延迟(iOS)的主要内容,如果未能解决你的问题,请参考以下文章

推送下一个视图控制器时删除 UISearchBar 的延迟

推送视图控制器后出现意外延迟

收到推送通知时推送视图控制器 iOS

iOS希望在按下按钮时延迟视图控制器之间的segue

iOS 在使用情节提要推送视图控制器时传递数据

在 iOS 中推送视图控制器时难以绕过堆栈中的视图控制器