iOS - 記住用戶登錄狀態保存用戶名密碼


 

    我們在使用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;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM