2014-11-06 65 views
2

我正在使用Swift爲iOS開發應用程序。我有兩個視圖控制器;第一個配置應用程序的應用程序(它只能在應用程序首次啓動時出現),第二個視圖控制器將登錄到應用程序。如何避免在swift上打開viewcontroller?

問題是:我想在第一次啓動時顯示「配置控制器」,此後必須出現「登錄控制器」,但我不知道如何執行此操作。我試圖把一個條件放入「配置控制器」來強制第二個(登錄)使它工作。但它不起作用。

你能解釋一下這個話題嗎?

+0

請發佈一個實際的例子,你已經嘗試... – Ajean 2014-11-07 00:10:23

回答

1

您可以使用這段代碼來設置您希望成爲AppDelegate.h啓動時顯示的第一個視圖控制器的視圖控制器。請記住編輯故事板ID爲Main.storyboard您的視圖控制器,並調整相應的字符串

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 
} 

爲您的應用程序完成啓動和即將顯示其初始視圖控制器此功能,即會叫。爲了更好地理解if檢查的內容,檢查NSUserDefaults的文檔(這是一個非常有用的類)。返回前的最後兩條語句基本上顯示了在if中選擇的視圖控制器。

希望這會有所幫助。

+0

謝謝你,我的朋友。它完美的作品:) – jhuazano 2014-11-08 03:54:42

0

你可以使用NSUserDefaults或其他的東西來保存你的配置,或者只是保存你的應用程序已經配置好的事實,並在你的appDelegate中執行didFinishLaunchingWithOptions,如果你想加載你想要的控制器,但我的解決方案不使用故事板。

相關問題