这就是我如何将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的连接:
答案 0 :(得分:3)
您是否在nameController中为文本字段创建了一个插座?这样做,然后您可以使用
检索值nameController.textField.text
在nib文件中,单击文件的所有者图标(在nib的左侧),并使用右侧的检查器将其类设置为UIView的子类。
答案 1 :(得分:0)
为什么要在Controller B中添加来自Controller A的视图。通过仅使用其xib文件并将该视图添加到控制器视图来创建视图不是更好。 对于访问字段,您可以为文本字段分配标记,并在您需要的代码中的哪个位置调用 self.view viewWithTag:&lt;#(NSInteger)#&gt;方法