将文本值从一个视图传递到另一个视图
问题描述:
我在我的表视图控制器中有这个,我想将单元格的文本值传递给我在模态视图上的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];
}
这是怎么回事?
谢谢。
答
它看起来好像你假设模态视图控制器已经加载它的视图,因为我假设nameField
是子视图。但很明显,当您的代码尝试设置其text
属性时,文本字段及其父视图尚未加载,因此您要发送-setText:
消息至nil
。
相反,将属性添加到类型为NSString *
的模式视图控制器,并在buttonTapped
实现中设置该属性。然后,在模态视图控制器的-viewWillAppear
方法中,您可以从该属性获取该值并将其放入文本字段中。