我想在用户启动应用程序时更改初始视图控制器,但只有在我从服务器获取有关哪一个的信息之后才能更改。
这有点像这样:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FirebaseManager.getUserProfile() { user in
if user?.sports.count == 0 {
// present View Controller 1
} else {
// present View Controller 2
}
}
return true
}
调用完成后,我决定显示哪个VC,但问题是return true
在开始时是同步触发的。
这会导致令人不快的用户体验,因为它会显示初始故事板(Login.storyboard
,如info.plist
中所配置),并且只有在请求完成后(几秒钟后),它才会变为正确的视图控制器我希望它直接更改为视图控制器,而不显示任何其他内容(即使它需要更多用户等待)。
我该如何避免这种情况?在处理这种情况时,最佳做法是什么?
答案 0 :(得分:1)
我建议使用Firebase远程配置参数。它在本地存储您的数据。你可以远程管理它。
或预先在UserDefaults
FirebaseManager.getUserProfile()
中存储价值。