didFinishLaunchingWithOptions

didFinishLaunchingWithOptions

我需要以编程方式从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/

10-11 12:31