我需要以编程方式从didFinishLaunchingWithOptions加载控制器,但不幸的是,首先要初始化控制器加载,而不是从didFinishLaunchingWithOptions方法加载控制器,所以有没有办法先从didFinishLaunchWithOptions方法加载控制器。
我的密码在这里
if UserModel.getUserSessionKey() != ""{
let dict = [
"access_token": UserModel.getUserToken()]
print("dictionay",dict)
let header = [
"sessionkey":UserModel.getUserSessionKey()]
ServiceWrapper.myRetailers(header,requestObject: dict) { (success, response) -> Void in
if (success) {
// Alert.showAlert("Alert", message: "Success")
self.isLogIn = true
self.createMenuView();
}
else{
// Alert.showAlert("Alert", message: "Failed")
MyRetailersViewController.deleteRetailers()
let featured = FeaturedController()
featured.deleteData()
let defaults = NSUserDefaults.standardUserDefaults()
defaults.removeObjectForKey("isSaved")
defaults.removeObjectForKey("update")
CoreDataHelper.deleteData("OfferDetail")
self.isLogIn = false
self.createMenuView();
}
}
}
最佳答案
我想说这不是一个合适的解决方案,但为你工作。
当必须根据响应设置根视图控制器时,在didFinishLaunchingWithOptions
中认真调用API不是一个好主意。
1)创建新的视图控制器(NewviewViewController)。
2)设置为根视图控制器。
3)在NewviewViewControllerviewWillaAppear
方法中调用您的服务(此处开始加载指示器)
4)根据响应启动控制器。
其他解决方案
1)从情节提要中移除初始控制器,然后根据响应调用API set Root view controller。
在这种情况下,在API调用失败之前,您将得到一个黑色窗口。
小心万一用户没有任何网络连接。在第二种情况下,应用程序打开空白窗口,而不是下一个屏幕。
关于ios - 在AppDelegate中的didFinishLaunchingWithOptions之前初始化 Controller 负载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38091064/