我需要以编程方式从didFinishLaunchingWithOptions加载控制器,但不幸的是首先初始化控制器加载而不是didFinishLaunchingWithOptions方法,所以有没有办法首先从didFinishLaunchingWithOptions方法加载控制器。 我的代码在这里
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();
}
}
}
答案 0 :(得分:0)
我想说这不是一个合适的解决方案,但为你工作。
在必须根据响应设置根视图控制器时,在didFinishLaunchingWithOptions
中认真调用API并不是一个好主意。
1)创建新的视图控制器(NewviewViewController)。
2)将其设置为根视图控制器。
3)使用NewviewViewController viewWillaAppear
方法调用您的服务(在此处开始加载指标)
4)根据响应启动你的控制器。
其他解决方案
1)从storyboard中删除初始控制器,然后根据响应调用您的API set Root视图控制器。
在这种情况下,您将获得一个黑色窗口,直到API无法成功调用。
请注意,如果用户没有任何互联网连接,会发生什么。在第二种情况下,您的应用程序打开时,空白窗口不是下一个屏幕。