推视控制器时延迟(iOS)

我有一个UIViewController,调用这个ViewControllerB ,我试图从ViewControllerA推送。 ViewControllerB有很多来自库(日历,分段控件等)的自定义UI,以及带有tableViews的UIPageViewController。

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

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

初始化阻塞主线程的布局太多了。 只有init,viewDidLoad和viewWillAppear方法中必需的布局,以及viewDidAppear中的其他任何内容。