UIApplicationDelegate
-在didFinishLaunchingWithOptions
中检查是否通过用户身份验证以进行网络呼叫,并在响应块中根据成功和失败的条件根据成功和失败的条件写入root代码,以将root植根到主屏幕(着陆屏幕) )以及失败根源到登录屏幕。但是我面临着一个翻转的问题,它没有扎根,为了成功,它正在显示初始viewcontroller并降落到home viewcontroller。
if dev_token == deviceToken{
// Constants.setValueInUserDefaults(objValue: "no", for: "logincheck")
if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SWRevealViewController") as? SWRevealViewController {
if let window = self.window, let rootViewController = window.rootViewController {
var currentController = rootViewController
while let presentedController = currentController.presentedViewController {
currentController = presentedController
}
currentController.present(controller, animated: true, completion: nil)
}
}
}else{
self.goToLogin()
//Constants.setValueInUserDefaults(objValue: "yes", for: "logincheck")
}
答案 0 :(得分:1)
检查用户身份验证是否通过了网络认证 调用,然后在响应块中编写生根代码
不要在AppDelegate / didFinishLaunchingWithOptions
方法中应用此行为,将移动到新的其他视图控制器中。
您可以做的是制作一个初始启动场景(视图控制器),并将其始终作为根,因此您可以在从网络调用中获得响应后确定根视图控制器。
此外,采用这种方法是一个好主意,因为您将能够在启动画面中显示一个指示符,以指示存在“等待中的东西”。