2016-02-26 50 views
0

運行加載我想知道這是要做到這一點的最佳方式,以及如何實現它: 當應用程序運行時,它會檢查是否有用戶默認值 NSUserDefaults.standardUserDefaults().valueForKey("uid") == nil如果值爲零,我希望應用重定向到名爲LoginViewController的視圖,如果不是零,請轉至MainViewController。兩個分組都是UIViewController。 我想在創建一個新的RedirectViewController作爲初始視圖控制器,並檢查它存在,但它不能正常工作,它不重定向:選擇哪個視圖時,應用程序在斯威夫特

class RedirectOnStart: UIViewController { 

    override func viewDidLoad() { 

    super.viewDidLoad() 
    if NSUserDefaults.standardUserDefaults().valueForKey("uid") == nil { 
     self.performSegueWithIdentifier("loginRegisterSegue", sender: nil) 

    } else { 
     self.performSegueWithIdentifier("mainViewSegue", sender: nil) 
    } 
    } 


    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if segue.identifier == "loginRegisterSegue" { 

     let nav = segue.destinationViewController as! LoginRegisterViewController 
    } 

    if segue.identifier == "mainViewSegue" { 

     let nav = segue.destinationViewController as! ViewController 

    } 

    } 
} 

回答

3

如果您的方案與「應用程序運行時,」開始你應該考慮直接在AppDelegate的didFinishLaunchingWithOptions中工作。

例如:

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

    self.window = UIWindow() 

    if NSUserDefaults.standardUserDefaults().valueForKey("uid") == nil { 
     self.window?.rootViewController = LoginController() 

    } else { 
     self.window?.rootViewController = MainController() 
    } 
    self.window?.makeKeyAndVisible() 

    return true 
}