2014-11-06 3 views
2

저는 Swift를 사용하여 iOS 용 앱을 개발하고 있습니다. 두 개의 뷰 컨트롤러가 있습니다. 앱을 구성하는 첫 번째 앱 (앱이 처음 시작될 때만 표시되어야 함) 인 경우 두 번째보기 컨트롤러는 앱에 로그인해야합니다.신속하게 viewcontroller를 열지 않으려면 어떻게해야하나요?

문제는 다음과 같습니다. 첫 번째 실행시 "config controller"를 표시하고 그 후에 "login controller"가 나타나야 만하는데, 어떻게해야할지 모릅니다. 나는 "config controller"에 조건을 넣어 두 번째 (로그인)가 강제로 작동하도록했습니다. 그러나 그것은 효과가 없습니다.

이 주제에 대해 나에게 설명 할 수 있습니까?

+0

당신이 시도한 것의 실제 예를 게시하십시오 ... – Ajean

답변

1

이 코드를 사용하여 AppDelegate.h를 시작할 때 표시되는 첫 번째보기 컨트롤러가 될보기 컨트롤러를 설정할 수 있습니다. 그냥 응용 프로그램이 실행을 완료하고 초기 뷰 컨트롤러를 표시하는 것입니다대로이 기능은 즉시 호출됩니다 따라

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    let storyboard = UIStoryboard(name: "MainStoryboard", bundle: NSBundle.mainBundle()) 
    let defaults = NSUserDefaults.standardUserDefaults() 

    var rootViewController : UIViewController; 

    if (defaults.boolForKey("HasBeenLaunched")) { 
     // This gets executed if the app has ALREADY been launched 
     rootViewController = storyboard.instantiateViewControllerWithIdentifier(/*storyboard id of your login controller*/) as UIViewController 
    } else { 
     // This gets executed if the app has NEVER been launched 
     defaults.setBool(true, forKey: "HasBeenLaunched") 
     defaults.synchronize() 

     rootViewController = storyboard.instantiateViewControllerWithIdentifier(/*storyboard id of your configuration controller*/) as UIViewController 
    } 

    self.window?.rootViewController = rootViewController; 
    self.window?.makeKeyAndVisible(); 

    return true 
} 

문자열을 Main.storyboard에서보기 컨트롤러의 스토리 보드 ID를 편집하고 조정하는 기억 . NSUserDefaults (실제로 유용한 클래스)에 대한 문서를 확인하고 있는지 확인하는 방법에 대해 더 잘 이해할 수 있습니다. 반환하기 전에 마지막 두 문은 기본적으로 if 내부에서 선택된보기 컨트롤러를 표시합니다.

희망이 도움이됩니다.

+0

내 친구 고맙습니다. 그것은 완벽하게 작동합니다 :) – jhuazano

0

NSUserDefaults 또는 다른 것을 사용하여 구성을 저장하거나 앱이 이미 구성되었다는 사실을 저장하고 appDelegate에서 didFinishLaunchingWithOptions에 원하는 컨트롤러를로드하는 경우 간단하게 수행 할 수 있습니다. 하지만 내 솔루션은 스토리 보드를 사용하지 않습니다.

관련 문제