应用程序首次运行时加载所有标签栏视图

Posted

技术标签:

【中文标题】应用程序首次运行时加载所有标签栏视图【英文标题】:Load all tab bar views when application first runs 【发布时间】:2011-01-07 00:51:21 【问题描述】:

我有一个带有 4 个独立视图的标签栏控制器。当我从第一个视图导航到第二个视图时,加载第二个视图需要一些时间。

我想要做的是,能够在启动画面期间加载和初始化我的所有标签栏视图。这样,当用户在选项卡视图之间导航时,没有等待时间。

如何在我的应用委托中手动初始化我的个人标签栏视图?

【问题讨论】:

什么是需要加载到各种视图中的?我认为您在启动画面期间不会获得太多处理器时间,如果这样做,您的加载不会延长启动画面吗? Load All TabBar Views的可能重复 这个可能会有所帮助...有点过时,但 swift 3 的一些更新 - ***.com/questions/9202737/load-all-tabbar-views 【参考方案1】:

以编程方式加载选项卡视图,例如在application:didFinishLaunchingWithOptions: 你可以:

// load the third one, for instance
thirdNavController = [tabBarController.viewControllers objectAtIndex:2];
[thirdNavController.topViewController loadView];

【讨论】:

Documentation 声明“你不应该直接调用 [loadView]”。但是,根据this answer,“如果您访问 [视图属性] 并且其值当前为 nil,则视图控制器会自动调用 loadView 方法”。【参考方案2】:

我认为访问每个控制器的视图属性会导致它被加载(延迟加载)。虽然我不认为你可以绝对保证它在内存紧张的情况下不会在你使用它之前被卸载。

【讨论】:

以上是关于应用程序首次运行时加载所有标签栏视图的主要内容,如果未能解决你的问题,请参考以下文章

在 appDelegate 中首次展示视图

使用标签栏从另一个视图返回时如何重新加载视图控制器

如何在swift 3中从标签栏移动时重新加载页面?

核心数据:保存结束时冻结

删除或插入核心数据后表视图未加载

如何使用新数据重新加载或刷新选项卡栏控制器的选项卡栏中的数据?