gpt4 book ai didi

ios - 启动时加载整个应用程序

转载 作者:行者123 更新时间:2023-11-30 12:30:57 24 4
gpt4 key购买 nike

我有一个选项卡式 iOS 应用程序,每个选项卡都有某种 json 请求,因此 View 加载速度稍慢。我想完全消除这种滞后,所以我想知道是否有一种方法可以在应用程序的登录阶段从每个类中调用 ViewDidLoad 函数。

if (login == "Success") {

UserDefaults.standard.set(true, forKey: "isUserLoggedIn");
UserDefaults.standard.synchronize();

DispatchQueue.main.async {

// Load all resources here

}
}

我可以理解,如果应用程序非常大,这可能是不好的做法,但我认为在这种情况下应用程序并不大,但 View Controller 之间的滞后足以令人烦恼。我宁愿让用户在开始时等待 3-5 秒,同时加载所有内容,并在进入后获得流畅的体验。有办法做到这一点吗?

最佳答案

您不应该自己调用 View Controller 的生命周期函数。 viewDidLoad 函数将在 View 加载后被调用。

Apple: This method is called after the view controller has loaded its view hierarchy into memory.

因此调用let _ = viewController.view将触发 View 创建并调用该函数。

但我认为最好有一个启动阶段。考虑一个“启动”屏幕,它会下载您需要的所有内容(可能带有旋转器和文本),并在完成后自动移动到内容(选项卡栏 Controller )。这也可以解决网络连接较低的问题(例如,考虑一下需要一分钟的下载)。您可以以模态方式将该屏幕显示在选项卡栏 Controller 上方或作为屏幕显示在选项卡栏 Controller 之前。

如果您不喜欢启动阶段的想法,您也可以设计响应式用户界面。在需要时/定期开始下载,并在准备好后根据结果更新您的用户界面。用户界面将很快,但使用最后已知的数据。意义和实现取决于您的内容。

更新

第二个想法:如果您已经有服务器登录屏幕,为什么不在成功下载后直接下载内容作为登录的一部分?用户不知道您是否仍在检查登录或下载一些必要的数据。你可能会说只有服务器登录和下载成功才算登录成功。

关于ios - 启动时加载整个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43567135/

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