2010-10-14 8 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方法中,您可以從該屬性獲取該值並將其放入文本字​​段中。

相關問題