2016-06-29 7 views
1

의 didFinishLaunchingWithOptions 전에 컨트롤러의 부하를 초기화 그러나 불행하게도 첫 번째 컨트롤러의 부하를 초기화하고 didFinishLaunchingWithOptions 방법보다는이다. 내 코드는 여기에 내가이 아닌 적절한 솔루션을 말을 좋아하지만, 당신을 위해 일 것그래서 didFinishLaunchingWithOptions 방법에서 첫 번째 컨트롤러를로드 할 수있는 방법이있다, 나는 didFinishLaunchingWithOptions에서 프로그래밍 컨트롤러를로드 할 필요 AppDelegate에

 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

귀하의 didFinishLaunchingwithOption 메서드는 전에 호출되었지만 웹 서비스가 응답하는 데 더 많은 시간이 소요됩니다. 스토리 보드에서 초기 뷰 컨트롤러를 설정합니다. 그게 맞습니다. – iMHitesh

+0

맞습니다. 이해합니다.하지만 솔루션은 무엇입니까? 나는 서비스 응답과 관련하여 viewController를 보여 주어야한다. –

+0

나는 내 대답을 게시 할 수있다. – iMHitesh

답변

0

입니다.

didFinishLaunchingWithOptions의 진지하게 API를 호출하는 것은 응답에 따라 루트보기 컨트롤러를 설정해야하는 경우에는 좋지 않습니다.

1) 새보기 컨트롤러 (NewviewViewController)를 만듭니다.

2) 루트보기 컨트롤러로 설정하십시오.

3) viewWillaAppear 방법은 (여기에로드 표시)를 시작 응답에 따르면

4) 컨트롤러를 시작 NewviewViewController에서 서비스 호출합니다.

다른 솔루션

1) 다음 반응에 따라 API 설정 루트 뷰 컨트롤러를 호출 스토리 보드에서 초기 컨트롤러를 제거합니다.

이 경우 API가 성공적으로 호출되지 않을 때까지 검정 창이 나타납니다.

사용자가 인터넷에 연결되어 있지 않은 경우 어떤 일이 발생하는지주의하십시오. 두 번째 경우에는 응용 프로그램이 다음 화면이 아닌 빈 창으로 열립니다.