2016-06-20 35 views
2

我想在appdelegate.swift文件檢查,如果用戶在顯示像Instagram的HomeviewController記錄,如果沒有顯示LoginViewController,IAM用mysql保存用戶的數據和PHP橋郎檢查,如果用戶登錄IOS迅速

代碼appdalegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     // Override point for customization after application launch. 

     var rootViewController = self.window!.rootViewController 
     let isUserLoggedIn:Bool = NSUserDefaults.standardUserDefaults().boolForKey("isUserLoggedIn") 
     if(isUserLoggedIn) { 
     let mainStoryboard = UIStoryboard(name: "Main" , bundle: nil) 
     let protectedPage = mainStoryboard.instantiateViewControllerWithIdentifier("goToHome") as! HomeViewController 
     window!.rootViewController = protectedPage 
     window!.makeKeyAndVisible() 
     } 
     else{ 
     let mainStoryboard = UIStoryboard(name: "Main" , bundle: nil) 
     let loginViewController = mainStoryboard.instantiateViewControllerWithIdentifier("loginview") as! LoginViewController 
     window!.rootViewController = loginViewController 
     window!.makeKeyAndVisible() 


     } 


     return true 
    } 

loginviewcontoler.swift

let success:NSInteger = jsonData.valueForKey("success") as! NSInteger 

         //[jsonData[@"success"] integerValue]; 

         NSLog("Success: %ld", success); 

         if(success == 1) 
         { 
          NSLog("Login SUCCESS"); 

          let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
          prefs.setObject(username, forKey: "USERNAME") 
          prefs.setInteger(1, forKey: "ISLOGGEDIN") 
          prefs.synchronize() 


          self.performSegueWithIdentifier("goToHome", sender: self) 

ProfileViewController.swift

override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(true) 


     let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
     let isLoggedIn:Int = prefs.integerForKey("ISLOGGEDIN") as Int 


     if (isLoggedIn != 1) { 

      self.performSegueWithIdentifier("goto_login", sender: self) 

     } 

     else 
     { 

      self.usernameLabel.text = prefs.valueForKey("USERNAME") as? String 

     } 

    } 

對不起長的問題

+3

問題是什麼? –

+0

不是問題,但我想要用戶打開應用程序時檢查如果登錄顯示loginview其他顯示loginview(如餅乾或喜歡那@ jigarTarsariya somting) – kvra13

回答

0

不要在這種情況下,使用NSUserDefaults的

https://github.com/matthewpalmer/Locksmith

下面是使用安全登錄很好的例子/註銷 因此,實施後

if let dictionary = Locksmith.loadDataForUserAccount("accaunt") 
{ 
//go to profile 
} 
else 
{ 
//go to login 
} 
0

按照步驟: -

第1步: - 創建custom SplashViewController集RootViewController的SplashViewController
第2步: - 輸入登錄服務呼叫SplashViewController
第三步將: - 當你登錄成功,然後就改變rootViewController
SETP 4: - 寫一個方法在AppDelegate更改rootViewController重定向Homescreen
Setp 5: - 撥打電話AppDelegate方法轉到Homescreen

0

你必須做一些工作。 1.你必須確保用戶登錄。這樣做,當你按下按鈕(登錄按鈕)使用UserDefaults

let userDefault = UserDefaults.standard 
userDefault.set(true, forKey: "isLoggedIn") 
userDefault.synchronize() 

2,當用戶將重新啓動應用程序只是檢查用戶是否登錄或沒有在viewDidAppear方法/ viewDidLoad中(這是你的選擇,你會用哪種方法。大部分時間我使用viewDidAppear)

let userDefault = UserDefaults.standard 

let savedData = userDefault.bool(forKey: "isLoggedIn") 
if(savedData){ 
    performSegue(withIdentifier: "segueTest", sender:nil)//here u have decide the which view will show if the user is logged in how. here i used segue. 

}else{ 
    viewController = self// this is the main view. just make the object of the class and called it. 
} 

我希望你知道如何準備賽格瑞