在另一个UIViewControllers视图中访问UITextField

时间:2012-08-29 11:33:47

标签: objective-c xcode

这就是我如何将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

IB中NameSubViewController的连接:

Connections, NameSubViewController

IB中NameSubView的连接:

Connections, NameSubView

2 个答案:

答案 0 :(得分:3)

您是否在nameController中为文本字段创建了一个插座?这样做,然后您可以使用

检索值
nameController.textField.text

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

答案 1 :(得分:0)

为什么要在Controller B中添加来自Controller A的视图。通过仅使用其xib文件并将该视图添加到控制器视图来创建视图不是更好。 对于访问字段,您可以为文本字段分配标记,并在您需要的代码中的哪个位置调用     self.view viewWithTag:&lt;#(NSInteger)#&gt;方法