1.) 将您的嵌入转场命名为“TextFields”
2.) 如果您还没有,请将 UITableViewController 子类化并将您的表视图控制器设置为情节提要中的此类。我们就叫它TextFieldsTableViewController吧。
3.) 同样,如果您还没有,请将您的文本字段的 IBOutlets 添加到 TextFieldsTableViewController 的公共界面中:
@property (weak, nonatomic) IBOutlet UITextField *firstNameField;
@property (weak, nonatomic) IBOutlet UITextField *usernameField;
@property (weak, nonatomic) IBOutlet UITextField *emailField;
@property (weak, nonatomic) IBOutlet UITextField *passwordField;
4.) 将文本字段的属性添加到 LoginViewController 的公共界面中(请注意,与上述不同,这些属性并不弱(它们也不是 IBOutlets,但这并不重要) ):
@property (nonatomic) UITextField *firstNameField;
@property (nonatomic) UITextField *usernameField;
@property (nonatomic) UITextField *emailField;
@property (nonatomic) UITextField *passwordField;
5.) 在LoginViewController 的prepareForSegue:sender: 方法中,强制表格视图控制器的视图立即加载后,将TextFieldsTableViewController 的文本字段映射到self 的文本字段:
if ([segue.identifier isEqualToString:@"TextFields"]) {
TextFieldsTableViewController *textFieldsVC = segue.destinationViewController;
// IMPORTANT: This forces the view to load and the outlets to get set.
// If you don't do this, textFieldsVC's IBOutlets will all be nil at this point.
// This is slightly inelegant in my opinion, but it works. A better solution might
// be to set the text fields in TextFieldsTableViewController's viewDidLoad method.
[textFieldsVC view];
self.firstNameField = textFieldsVC.firstNameField;
self.usernameField = textFieldsVC.usernameField;
self.emailField = textFieldsVC.emailField;
self.passwordField = textFieldsVC.passwordField;
}
6.) 您现在应该能够访问 LoginViewController 的 viewDidLoad 方法中的文本字段。