2

2つ実装しましたuiviewcontrollers。1 つのボタンと 1つのボタンにいくつかのテキスト フィールドがありますuiview。私が望むのは、テキスト フィールドに入力してボタンをクリックすると、これらの値が別のuiviewコントローラーに表示されることです。テキスト フィールドに入力してボタンをクリックすると問題が発生します。別のボタンuiviewが iPhone 画面に表示されますが、テキスト フィールドの値は表示されません。nextview.hまた、ファイルを自分のファイルにインポートしviewcontroller.mます。以下は私のコードの一部です:

-(IBAction)save:(id)sender
{


    nextview *NView = [[nextview alloc] initWithNibName:nil bundle:nil];

    [[NView name] setText:name.text];
    [[NView fathername] setText:father.text];
    [[NView country] setText:countryselected.text];
    [[NView gender] setText:genderselected.text];
    [[NView dob] setText:dateselected.text];
    [[NView username] setText:username.text];
    [[NView password] setText:password.text];
    [[NView email] setText:email.text];
    [self presentModalViewController:NView animated:YES];

}

クラスでは、.h ファイルで uilabelsnextviewも定義し、これらのラベルをファイルで定義し、これらの変数をすべてのラベルにリンクしました。問題はまだあります。この問題を回避するにはどうすればよいですか?@property@synthesizeinitializereleasenextview.m

4

4 に答える 4

0

initWithNibNameについては、アップルのドキュメントを参照してください

http://developer.apple.com/library/ios/ipad/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

ペン先は、そのビューにアクセスするまでロードされません。追加の初期化には、viewDidLoadを使用します。

つまり、アウトレットはinitWithNibNameの直後に設定されません。

したがって、実行できることの1つは、最初のviewControllerへの参照をnViewのプロパティとして追加し、nViewのviewDidLoadで、最初のVCラベルに従ってラベルを設定することです。

ちなみに、命名規則が間違っています。クラスには大文字を使用し、そのクラスのインスタンスには小文字を使用します。

Nextview *nView;
于 2012-11-15T17:52:51.053 に答える
0

nextview *NView = [[nextview alloc] initWithNibName:nil bundle:nil]; を呼び出すときに、メンバー (名前など) のプロパティを初期化しますか? ビューに関するviewdidiloadまたは他の関数でそれらを初期化すると、[self presentModalViewController:NView animation:YES]; を呼び出した後に初期化されます。

于 2012-11-15T14:44:23.913 に答える
0

次のコード行を参照してください。

nextview *NView = [[nextview alloc] initWithNibName:nil bundle:nil];

次のビューを作成するには、nib 名として nil を使用します。nib 名を付けるために、nextview の initWithNibName を上書きしましたか?

于 2012-11-15T14:18:35.280 に答える
0

あるビューから別のビューにデータを渡す方法はたくさんあります。このチュートリアルでは、このメソッドについての簡単な説明があります。どの方法が必要かを確認してください。チュートリアルのソース コード

于 2012-11-15T14:20:06.450 に答える