0

这就是我在 MainViewController 中使用 XIB 视图控制器视图作为子视图的方式:

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 中的连接:

连接,名称子视图控制器

NameSubView 在 IB 中的连接:

连接,NameSubView

4

2 回答 2

3

您是否为 nameController 中的文本字段创建了一个出口?这样做,然后您可以使用检索值

nameController.textField.text

在 nib 文件中,单击文件的所有者图标(在 nib 左侧),然后使用右侧的检查器将其类设置为 UIView 的子类。

于 2012-08-29T11:36:30.660 回答
0

为什么要在控制器 B 中从控制器 A 添加视图。仅使用其 xib 文件创建视图并将该视图添加到控制器视图不是更好吗?对于访问字段,您可以为您的文本字段分配一个标签,并且在您需要它的代码中的任何地方,调用 self.view viewWithTag:<#(NSInteger)#> 方法。

于 2012-08-30T07:34:33.250 回答