2016-08-06 2 views
0

내 응용 프로그램은 다음과 같은 흐름을 가지고 . 나는 main Screen에 다음 코드를 추가했습니다 :DismissViewController 스위프트

func handleLogout() { 
     if self.presentingViewController != nil { 
      var vc = self.presentingViewController 
      while ((vc!.presentingViewController) != nil) { 
       vc = vc!.presentingViewController 
      } 
      vc?.dismissViewControllerAnimated(true, completion: { 
      }) 
     } 
} 

1st 경로가 다음 다음 (사용자가 응용 프로그램을 시작할 때 로그인 한)이 Loading Screen 앱 반환 등 및 경우이 잘 작동 최대로드 예상대로 Login Screen. 그러나 2nd 경로를 따라 (사용자가 응용 프로그램을 시작할 때 사용자가 로그인하지 않고 Login Screen을 사용한 경우)이 코드는 Login Screen이 직접 열리고 전체 로그 아웃 프로세스가 실패합니다. Loading Screen이 두 경로 중 어떤 경로를 따라 갔는지에 관계없이이 코드에 의해 항상로드되는 방법인지 확인할 수 있습니다.

+1

스토리 보드를 사용하고 있습니까? 그렇다면 간단히 화면을로드하기 위해 긴장을 풀고 필요할 때마다 전화하십시오. – Paulw11

답변

1

긴장을 푸십시오!

기본적으로 "기본 화면"과 "로그인 화면"을 연결하는 풀기 연결선을 추가하십시오. ID를 부여하면 원할 때마다 연속성을 시작할 수 있습니다. handleLogout에서 :

언 와인드 SEGUE 만드는 방법에 대한 자세한 내용
func handleLogout() { 
    self.performSegueWithIdentifier("your identifier", sender: self) 
} 

: https://www.andrewcbancroft.com/2015/12/18/working-with-unwind-segues-programmatically-in-swift/

0

이건 그냥 제안은 여기 간다 : 응용 프로그램이 처음 사용자의 로그인 상태 표시를 확인할 수 있습니다 시작할 때 이제

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     //Implement this method 
     let userLoggedIn = isUserLoggedIn(); 
     if !userLoggedIn { 
      let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 
      //Instantiate the login view controller 
      window?.rootViewController = storyboard.instantiateViewControllerWithIdentifier("login") 
      window?.makeKeyAndVisible() 
     } 

     return true 
    } 

:이 비슷한 작업을 수행 할 수 있습니다

파일 AppDelegate에서 적절한 견해.

참고 : 스토리 보드를 사용하는 경우이 내가 로그인보기/s의 순수 사용되는 스토리 보드를 작성하는 것이 좋습니다, 당신은 스토리 보드를 사용하고 루트 뷰 컨트롤러가 Main Screen

0

로 설정된 것입니다 가정합니다. 그런 다음 AppDelegate DidFinishLoading 메소드에서 로그인 스토리 보드를 표시하거나 메인 스토리 보드가 이미 로그인되어있는 경우 표시 할 수 있습니다. 스토리 보드를 언제든지 쉽게 교체 할 수 있습니다. 그러면 약간의 흐름을 단순화하는 데 도움이됩니다. 이것이 내 앱에서 주로하는 일입니다. 샘플 코드가 필요하면 알려주세요.