我在表视图控制器中有这个,我想在模态视图中将单元格的文本值传递给我的UITextField。
- (void)buttonTapped:(id)sender {
AddName *addName = [[AddName alloc] init];
UITableViewCell *cell = (UITableViewCell*)[sender superview];
NSLog(@"text in buttontapped: %@", cell.textLabel.text);
addName.nameField.text = cell.textLabel.text;
addName.delegate = self;
[self presentModalViewController:addName animated:YES];
}
NSLog显示正确的单元格文本值。
在我的模态视图的viewDidLoad方法中我有这个...并且文本值永远不会被设置...
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"text: %@",nameField.text);
nameField.autocapitalizationType = UITextAutocapitalizationTypeWords;
nameField.autocorrectionType = UITextAutocorrectionTypeDefault;
[nameField becomeFirstResponder];
}
发生了什么事?
感谢。
答案 0 :(得分:1)
看起来你假设模态视图控制器已经加载了它的视图,因为我假设nameField
是一个子视图。但很明显,当您的代码尝试设置其text
属性时,文本字段及其父视图尚未加载,因此您向{{1}发送了-setText:
消息}}
而是将属性添加到nil
类型的模态视图控制器中,并在NSString *
实现中设置该属性。然后,在模态视图控制器的buttonTapped
方法中,您可以从属性中获取值并将其放入文本字段中。