0

これは、XIBビューコントローラービューをMainViewControllerのサブビューとして使用する方法です。

UIViewController *nameController = [[NameSubViewController alloc] initWithNibName:@"NameSubViewController" bundle:nil];
nameSubView = [nameController view];
[self.view addSubview:nameSubView];

にはプロパティnameController viewが含まれていUITextFieldます。どういうわけかMainViewControllerからこのプロパティにアクセスできますか?

編集:

View ControllerでもtextFieldのプロパティを作成しても、MainViewControllerで取得できません。UIViewがサブクラス化されて問題が発生したためだと思いますか?

NameSubViewController.h:

#import <UIKit/UIKit.h>

@interface NameSubViewController : UIViewController

@property (nonatomic, strong) IBOutlet UITextField *textField;

@end

NameSubView.h:

#import <UIKit/UIKit.h>

@interface NameSubView : UIView

@property (nonatomic, strong) IBOutlet UITextField *textField;

- (IBAction)textFieldReturn:(id)sender;

@end

NameSubViewControllerのIBでの接続:

接続、NameSubViewController

NameSubViewのIBでの接続:

接続、NameSubView

4

2 に答える 2

3

nameControllerにテキストフィールドのアウトレットを作成しましたか?そうすれば、次を使用して値を取得できます

nameController.textField.text

nibファイルで、ファイルの所有者アイコン(nibの左側)をクリックし、右側のインスペクターを使用して、そのクラスをUIViewのサブクラスに設定します。

于 2012-08-29T11:36:30.660 に答える
0

コントローラーAからコントローラーBにビューを追加するのはなぜですか。xibファイルのみを使用してビューを作成し、そのビューをコントローラービューに追加する方がよいのではないでしょうか。フィールドにアクセスするには、テキストフィールドにタグを割り当てることができます。コード内の必要な場所で、self.view viewWithTag:<#(NSInteger)#>メソッドを呼び出します。

于 2012-08-30T07:34:33.250 に答える