2016-09-08 11 views
-1

私は現在、自分のスキルとxcodeとアプリケーション開発の理解を実際にテストするための単純なアプリケーションを開発中です。私はまだ初心者ですので、それは主にスキルの構築だけでなく、学習ツールです。どちらの方法でも、私は簡単なログイン/レジスタを実装しようとしていますが、次のView Controller画面に進む前に、ログイン画面と登録画面が分離されており、アプリに格納されています。NSUserdefaultsの情報を1つのビューコントローラから別のビューコントローラに移動する

はViewController1.mでは、私はViewController2.hを呼ぶ:

#import "ViewController2.h" 

はこれもViewController1.hためViewController2.mで行われます。 ViewController1.miで

などNSUserDefaultsを利用:

NSUserDefaults *defaults = [NSUserDefaults standarUserDefaults]; 

[defaults setObject:_usernameField2.text forKey:@"username"]; 
[defaults setObject:_passwordField2.text forKey:@"password"]; 
[defaults setBool:YES [email protected]"registered"]; 

[defaults synchronize]; 

プログラムを実行していると私は、ユーザーを登録することができるよとセグエコマンドで私は次のビューコントローラに行くことができるよ時:

[self performSegueWithIdentifier:@"loginScreen" sender:self]; 

私はViewController2画面にアクセスすると理想的には、前のViewController(ViewController1)の情報を使用したいと考えています。しかし、私が情報を使用しようとすると、プログラムは前のviewControllerからの情報を確認しません。私は、このようなのNSStringを使用するなど、他の方法を試してみた

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

    if (![_usernameField1.text isEqualToString:[defaults objectForKey:@"username"]] && ![_passwordField1.text isEqualToString:[defaults objectForKey:@"password"]]) 

は、しかし、私は、私は、単純な何かが足りないか、どのように私は、オフかもしれコードを実装しようとしてるのどちらかだと信じています。私の一部は、私がxcode(4.6.3)のそれ以降のバージョンで走っていて、コーディングしているという事実が原因かもしれないと思っていますが、これはミニッツの考えです。私は研究をしましたが、いくつかの方法を試しました。欠けているものや、追加や変更が必要なものが何であるかはわかりません。どんな助けでも大歓迎です。事前にありがとう

+0

あなたの質問には、問題の内容が記載されていません。 「情報を認めない」とは無意味であり、あなたが掲示した陳述が実際の問題が何であるかを私たちに教えることはまったくありません。あなたは何を期待していますか、その行で何が起こりたいと思いますか、あなたは何を観察していますか? usernameField1が第1のビューコントローラのメンバである場合、第2のビューコントローラのメンバである場合、/ howはそのデータをどこから取得していますか?そのコードがView Controller 2でない場合、なぜそれを表示していますか? – Gruntcakes

+0

あなたは 'NSUserDefaults'に資格情報を保存したくありません。 – Adrian

+0

私は本当に問題を表現していないと思うが、私が達成しようとしているのは、ユーザーがView Controller 1のNSUserdefaultsに保存した登録画面(ユーザー名とパスワード)に関する情報を入力するときです。私がやろうとしているのは、NSUserdefaultsに置かれた情報を、ViewController 1からデフォルトのViewController 2にユーザ名とパスワードで保存したことを思い出すことです。まず、最初のViewControllerで保存したものを使用しようとしています(ユーザ名とパスワード)を使用します。また、もし私がチェックしようとしているものに私のifステートメントが間違っているかもしれないかどうかは確かです –

答えて

0

checkCredintailsメソッドでは、テキストフィールドの値とデフォルト値に格納されている値をNSLogに設定します。 _usernameField2と_passwordField2の値を実際に保存していることも確認してください。

NSUserDefaultsからデータを保存して取得する方法はうまく見えるので、ユーザーはViewController1にユーザー名とパスワードを入力(保存)し、ViewController2に再度入力して検証しますか?おそらくNSUserDefaultsを使ってパスワードをチェック/ストアするべきではありませんが、例としてこれをやっていると思います。

関連する問題