1

我正在做一個小應用程序,我正在使用UISplitVIewController,我試圖將UITable單元格文本推送到詳細視圖並將其顯示在UITextField中。我已成功地很好推絃的時候我用的NSLog測試,但是當我申請到的UITextField不顯示不知道爲什麼,在這裏我的方法:推送一個字符串並顯示在UITextField中

-(void)pushModuleName:(NSString*)moduleName 
{ 
    self.Lv4ModuleTitleTextField.text = moduleName; 
    NSLog(@"name pushed%@",moduleName); 
} 

不是(我使用的是故事板做這個)肯定爲什麼這不起作用。

[更新]

UITableViewController.m(其中,該方法被調用)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *selectedModule = [NSString stringWithFormat:@"%@",[_numberOfRows objectAtIndex:indexPath.row]]; 

    Lv4GradeViewController *lv4 = [[Lv4GradeViewController alloc] initWithNibName:nil bundle:nil]; 
    [lv4 pushModuleName:selectedModule]; 

} 
+0

是否已確認'self.Lv4ModuleTitleTextField'不是'nil'? – rmaddy

+0

@rmaddy不,我應該在哪裏做 – Led

+0

在你的'pushModuleName:'方法中。 – rmaddy

回答

1

的問題是,你沒有得到對你有屏幕上的Lv4GradeViewController參考,您要創建一個新的具有ALLOC初始化。一個分割視圖控制器,有一個viewControllers數組,索引0處的控制器是主控制器,索引1處的控制器是詳細控制器。所以,didSelectRowAtIndexPath方法方法應該是這樣的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *selectedModule = [NSString stringWithFormat:@"%@",[_numberOfRows objectAtIndex:indexPath.row]]; 
    Lv4GradeViewController *lv4 = self.splitViewController.viewControllers[1]; 
    [lv4 pushModuleName:selectedModule]; 
} 
2

您正在創建Lv4GradeViewController與下面的代碼一個新的實例,但沒有XIB文件,該文件將包含文本字段:

Lv4GradeViewController *lv4 = [[Lv4GradeViewController alloc] initWithNibName:nil bundle:nil]; 

我建議你實例Lv4GradeViewController用故事板instantiateViewControllerWithIdentifier方法:

Lv4GradeViewController *lv4 = [self.storyboard instantiateViewControllerWithIdentifier:@"IdentifierName"]; 

記住設置Lv4GradeViewController一樣IdentifierName的故事板ID在故事板。

Set the storyboard ID of the view controller

+0

那部分已經完成 – Led

+0

我有聯繫我的文本框的AN合成它,但它只是沒有按設置文本我不知道爲什麼 – Led

+0

@oneArled:我已經更新了我的答案 –

相關問題