iOSによるログイン状態処理の実現
3019 ワード
今日お話しするのは、私たちのユーザーのログイン状態をどのように記録するかです.例えば、微信、QQなどは、ユーザーがログインした後、アプリケーションを閉じて開くと直接ログインします.では、プロジェクト開発でユーザーのログイン状態をどのように記録しますか?もちろんNSUserDefaultを使います.
NSUserDefaultはアップルがユーザーのログイン情報を格納するために提供してくれたクラスで、もちろん持続的で、くだらないことは多くありません.ユーザーのログインとログアウトをシミュレートしたdemoについて、NSUserDefaultを使用してユーザーのログイン情報を格納する方法を学びます.
1.まず、登録ページに対応するクラスがViewControllerでなければなりません.h,登録ページには2つのTextFieldと1つのButtonがユーザの入力を受け付けるためのものがあり,Buttonのコールバックをクリックする方法では,ユーザの登録が成功すればユーザ情報をUserDefaultに格納し,その後,モダリティでメインインタフェースにジャンプし,まずUserDefaultの一例を取得し,登録ページの登録ボタンコールバックの方法コードは以下の通りである.
2.ログインページの処理が完了すると、UserDefaultのname属性に値があるかどうかに基づいてどのページをロードするかを選択します.storybaordでは、AppDelegateでメインインタフェースがデフォルトです.mにログインしていない場合は、rootView Controlを設定します.コードは次のとおりです.
3.上記のコードを介して、ユーザーのログイン状態に基づいてロードされた情報を選択することができます.ログイン後のページには、終了するためのボタンを追加します.ボタンコールバックを終了する方法では、以前に保存したユーザー情報をremoveしながら、ログインページにモードでジャンプする必要があります.コードは以下の通りです.
NSUserDefaultはアップルがユーザーのログイン情報を格納するために提供してくれたクラスで、もちろん持続的で、くだらないことは多くありません.ユーザーのログインとログアウトをシミュレートしたdemoについて、NSUserDefaultを使用してユーザーのログイン情報を格納する方法を学びます.
1.まず、登録ページに対応するクラスがViewControllerでなければなりません.h,登録ページには2つのTextFieldと1つのButtonがユーザの入力を受け付けるためのものがあり,Buttonのコールバックをクリックする方法では,ユーザの登録が成功すればユーザ情報をUserDefaultに格納し,その後,モダリティでメインインタフェースにジャンプし,まずUserDefaultの一例を取得し,登録ページの登録ボタンコールバックの方法コードは以下の通りである.
- (IBAction)tapLogin:(id)sender {
//
NSString *username = self.usernameTextField.text;
NSString *password = self.passwordTextField.text;
// username password
if ([username isEqualToString:password]){
// userDefault
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
// UserDefault
[userDefaults setObject:username forKey:@"name"];
[userDefaults setObject:password forKey:@"password"];
[userDefaults synchronize];
//
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
id mainViewController = [storyboard instantiateViewControllerWithIdentifier:@"MainView"];
[self presentViewController:mainViewController animated:YES completion:^{
}];
}
}
2.ログインページの処理が完了すると、UserDefaultのname属性に値があるかどうかに基づいてどのページをロードするかを選択します.storybaordでは、AppDelegateでメインインタフェースがデフォルトです.mにログインしていない場合は、rootView Controlを設定します.コードは次のとおりです.
// ,
// UserDefault
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSString *name = [userDefault objectForKey:@"name"];
// storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
//
if (name == nil)
{
NSLog(@"%@",name);
id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];
self.window.rootViewController = view;
}
3.上記のコードを介して、ユーザーのログイン状態に基づいてロードされた情報を選択することができます.ログイン後のページには、終了するためのボタンを追加します.ボタンコールバックを終了する方法では、以前に保存したユーザー情報をremoveしながら、ログインページにモードでジャンプする必要があります.コードは以下の通りです.
- (IBAction)tapLoginOut:(id)sender {
// UserDefaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
// UserDefaults
[userDefaults removeObjectForKey:@"name"];
[userDefaults removeObjectForKey:@"password"];
[userDefaults synchronize];
// storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
//
id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];
//
[self presentViewController:view animated:YES completion:^{
}];