2016-04-26 11 views
1

フルネーム、ユーザー名、パスワード、電子メール、登録ボタンのある登録ページが必要です。 登録ボタンをクリックすると、登録ページに移動して、NSUserDefaultsを使用して登録ページで作成したユーザー名とパスワードを確認します。 正しい資格情報を与えたらログアウトページにリダイレクトする必要があります。次にアプリケーションを開くときは、ログアウトページに直接リダイレクトする必要があります。 データはNSUserDefaultsを使用してローカルに格納する必要があります(値は文字列形式で格納する必要があります)。登録ログインログアウトiOSのアプリケーション(NSUserDefaults)Xcodeを使用

ログイン・ビュー・コントローラの問題は、私は登録ページから値を通過してきたが、私はそれを保存していたときにということである.M

#import "ViewController2.h" 

@interface ViewController2() 

@end 

@implementation ViewController2 

- (void)viewDidLoad { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    NSString *firstName = [defaults objectForKey:@"firstName"]; 
    NSString *lastName = [defaults objectForKey:@"lastname"]; 

    firstName = _inputTxt1.text; 
    lastName = _inputTxt2.text; 

    [super viewDidLoad]; 
    NSLog(@"%@",self.dataString); 
    NSLog(@"%@",self.dataString2); 

    self.navigationItem.title = @"Login Page"; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 


- (IBAction)btnAction:(id)sender { 
    NSString *firstName = [_inputTxt1 text]; 
    NSString *lastName = [_inputTxt2 text]; 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults setObject:firstName forKey:@"firstName"]; 
    [defaults setObject:lastName forKey:@"lastname"]; 
    [defaults synchronize]; 


// [Defaults setObject:@"Eezy"forKey:@"iOS"]; 
    NSLog(@"%@",[defaults stringForKey:@"firstName"]); 
    NSLog(@"%@",[defaults stringForKey:@"lastName"]); 
    if ([self.dataString isEqualToString:[defaults objectForKey:@"firstName"]] && [self.dataString2 isEqualToString:[defaults objectForKey:@"lastName"]]) 
    { 

     NSLog(@"goog"); 
     [self performSegueWithIdentifier:@"segueToNextPage2" sender:self]; 
    } 
    else 
    { 
     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Hey Listen" message:@"Wrong User Name or Password" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 

     [alert show]; 
    } 
} 

@end  

の.h

#import <UIKit/UIKit.h> 

@interface ViewController2 : UIViewController 
@property(strong, nonatomic)NSString *dataString; 
@property(strong, nonatomic)NSString *dataString2; 

@property (strong, nonatomic) IBOutlet UILabel *lblOutput; 
@property (strong, nonatomic) IBOutlet UITextField *inputTxt1; 
@property (strong, nonatomic) IBOutlet UITextField *inputTxt2; 
- (IBAction)btnAction:(id)sender; 

@end                  

ログイン・ビュー・コントローラNSUserDefaultにusernameの値を格納していますが、パスワードの場合はnull値を示しています。登録ページからNSUserDefaultsで詳細を保存

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"Your Key"]; 
+1

http://stackoverflow.com/help/how-to-ask – Shubhank

+1

質問よりも割り当てに似ているようです。あなたは何かを試しましたか、特定の分野の問題に直面しましたか? – UditS

+0

//問題は、登録ページの値を渡したのですが、NSUserDefaultに保存しているときにusernameの値を保存していますが、パスワードの場合はエラーが表示されています。 –

答えて

1

は、私が得たソリューションです。 IDインスペクタのstoryBoardを "UITabBarController"として作成します。これがあなたが行きたいページになることを覚えておいてください。次のコードだけ@implemention書き込み以下AppDelegate.hファイルで

ステップ3: -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"registered"]) { 

     UITabBarController *controller = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"UITabBarController"]; 
     self.window.rootViewController = controller; 
    } 
    return YES; 
} 

、それは非常に簡単です。

2

NSUserDefaultsにも入力して、ユーザーがログインしているかどうかを確認してください。あなたのAppDelegateのdidFinishLaunching方法で

[[NSUserDefaults standardUserDefaults]setValue:@"YES" forKey:@"isLoggedIn"]; 

、例えばisLoggedInキーの値に基づいてinitialViewControllerを変更

ステップ1:ログインページではブール変数を定義し、

- (IBAction)btnAction:(id)sender { 
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
[prefs setBool:YES forKey:@"registered"]; 
    [prefs synchronize]; 
} 

ステップ2ログインボタンをクリックした場合にTRUEとその値を設定 - :ここで

if ([[[NSUserDefaults standardUserDefaults]valueForKey:@"isLoggedIn"] isEqualToString:@"YES"]) 
    { 
     // redirect to logout screen 
    } 
    else 
    { 
     //show login or register screen 
    } 
+0

しかし、次回はログインし直さないようにログアウト方法を作成する方法。 –

+0

私の更新された答えを確認してください –

0

:あなたは値ログアウトについては

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

// getting an NSString 
NSString *savedUsername = [prefs stringForKey:@"userName"]; 
NSString *savedPassword = [prefs stringForKey:@"password"]; 

を取得するための

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

// saving an NSString 
[prefs setObject:txtUsername.text forKey:@"userName"]; 
[prefs setObject:txtPassword.text forKey:@"password"]; 

[prefs synchronize]; 

を使用することができますログイン値を保存するための

+0

詳細を教えてください –

+0

@shubhammishra何か複雑ですか? –