我們在使用APP時常用的一個功能:用戶第一次進入APP時自動進入登錄注冊頁,提示用戶注冊登錄,用戶登錄成功后才進入主頁,再次進入APP時,不用再次登錄就直接進到主頁了,就算殺掉該APP進程再次進入,依然進入主頁.
蘋果給我們iOS開發者提供了一個NSUserDefault類,用來持久化存儲用戶的登錄信息,只有卸載APP才能抹掉這些登陸信息.
1.在登陸頁面對應的類loginViewController.h中定義兩個TextField和一個Button,用來接受用戶輸入的用戶名和密碼,點擊按鈕登陸,如果登陸成功,就將用戶的登陸信息存放在UserDefault中,然后跳入主頁面
2.在loginViewController.m中實現兩個TextField和一個Button,UI方面的代碼就不粘貼了,直接實現按鈕的點擊登錄事件:登錄請求成功后,走成功回調,回調下面實現將用戶名和密碼存入UserDefault中,頁面跳轉到主頁面.下面數據請求的代碼就不粘貼了,直接上存儲UserDefault代碼,跳轉主頁面.ps:#import "AppDelegate.h"

3.在AppDelegate.h中實現:用戶第一次進入APP時自動進入登錄注冊頁,提示用戶注冊登錄,用戶登錄成功后才進入主頁,再次進入APP時,不用再次登錄就直接進到主頁了.

補充說明:如果你的登錄頁是自定義的導航欄,跳轉登錄頁做此修改

4.執行完登錄操作后,給“username”字段賦一個非空值,這樣下次到AppDelegate時,判斷之后就會進入到主頁了
5.最后,該如何移除自動登錄這種狀態呢,或者切換用戶登錄.在你的退出登錄按鈕事件中實現.
6.好了,保存登錄狀態,移除等操作的都已經實現了.
//用戶登錄信息key #define kUserInfoKey @"userInfoKey" //用戶登錄信息密碼 //#define kUserPwdKey @"userPwdKey" 1、 [MBProgressHUD showSuccess:@"登錄成功" toView:self.view]; [[NSUserDefaults standardUserDefaults] setObject:self.phoneNumTF.text forKey:kUserInfoKey];//保存登錄用戶名 // [[NSUserDefaults standardUserDefaults] setObject:self.pwdTF.text forKey:kUserPwdKey];//保存密碼 2、 [MBProgressHUD showSuccess:@"注冊成功" toView:self.view]; [[NSUserDefaults standardUserDefaults] setObject:self.phoneTF.text forKey:kUserInfoKey]; // [[NSUserDefaults standardUserDefaults] setObject:self.pwdTF.text forKey:kUserPwdKey]; 3、 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { SDLoginViewController *login = [[SDLoginViewController alloc] init]; SDNavigationController *nav = [[SDNavigationController alloc] initWithRootViewController:login]; self.window.rootViewController = nav; NSString *userPhone = [[NSUserDefaults standardUserDefaults] objectForKey:kUserInfoKey]; // NSString *userPwd = [[NSUserDefaults standardUserDefaults] objectForKey:kUserPwdKey]; login.userLoginName = userPhone; // login.userPwdTF = userPwd; } 4、 #import "SDLoginViewController.h" if (self.userLoginName.length == 0) { self.phoneNumTF.placeholder = @"手機號/用戶名/郵箱"; [self.phoneNumTF setValue:[UIColor colorWithHexString:@"#A7A7A7"] forKeyPath:@"_placeholderLabel.textColor"]; } else { self.phoneNumTF.text = self.userLoginName; } if (self.userPwdTF.length == 0) { self.pwdTF.placeholder = @"密碼"; [self.pwdTF setValue:[UIColor colorWithHexString:@"#A7A7A7"] forKeyPath:@"_placeholderLabel.textColor"]; } else { self.pwdTF.text = self.userPwdTF; }