2010-10-14 159 views
0

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

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

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

相关问题