将文本值从一个视图传递到另一个视图

时间:2010-10-14 00:19:27

标签: iphone objective-c uitableview

我在表视图控制器中有这个,我想在模态视图中将单元格的文本值传递给我的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];
}

发生了什么事?

感谢。

1 个答案:

答案 0 :(得分:1)

看起来你假设模态视图控制器已经加载了它的视图,因为我假设nameField是一个子视图。但很明显,当您的代码尝试设置其text属性时,文本字段及其父视图尚未加载,因此您向{{1}发送了-setText:消息}}

而是将属性添加到nil类型的模态视图控制器中,并在NSString *实现中设置该属性。然后,在模态视图控制器的buttonTapped方法中,您可以从属性中获取值并将其放入文本字​​段中。