2013-07-17 38 views
0

我目前正在嘗試將我的應用程序轉換爲Storyboards。目前我的數據存儲在一個plist文件,我通過我的tableviews向下鑽取非常容易地使用下面的代碼在我目前didSelectRowAtIndexPath:方法:編程tableviews segue向下鑽取

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row]; 
NSArray *children = [dictionary objectForKey:@"Children"]; 

[tableView deselectRowAtIndexPath:indexPath animated:YES]; 

if ([children count] == 0) 

{ 
    NSString *tempString1 = [dictionary valueForKeyPath:@"Movie"]; 
    NSString *tempString2 = [dictionary valueForKeyPath:@"Text"]; 
    NSString *tempString3 = [dictionary valueForKeyPath:@"Diagram"]; 

    DetailsVC *dvc = [[DetailsVC alloc] initWithNibName:@"DetailsVC" bundle:nil]; 

    dvc.movie = tempString1; 
    dvc.pdfdesc = tempString2; 
    dvc.pdfDiagram = tempString3; 
    dvc.navigationItem.title = [dictionary valueForKeyPath:@"Title"]; 
    [self.navigationController pushViewController:dvc animated:YES]; 

} 
else 

{ 

    LevelsVC *lvc = [[LevelsVC alloc] initWithNibName:@"LevelsVC" bundle:[NSBundle mainBundle]]; 

    lvc.currentLevel += 1; 
    lvc.navigationItem.title = [dictionary valueForKeyPath:@"Title"]; 
    [self.navigationController pushViewController:lvc animated:YES]; 

    lvc.tableDataSource = children; 

    } 

我的問題是:如何在地球上我轉換這個方法使用Segues和Storyboards?我可以很容易地爲detailViews創建一個segue,並且在網絡上有一百萬個教程,但我根本無法弄清楚如何深入瞭解tableview中的數據。

任何幫助或示例代碼將不勝感激!

回答

1

您可以使用-performSegueWithIdentifier:sender:以編程方式從一個視圖控制器轉換到另一個視圖控制器。只需將配置dvc的代碼移動到您的-prepareForSegue:sender:實施。

另一種選擇是將故事板中的segue從表格中的單元格連接到下一個視圖控制器。這將導致一旦行被選中就觸發segue,從而防止您必須以編程方式啓動segue。在這種情況下,您只需執行-prepareForSegue:sender:即可在segue的目標視圖控制器中設置所有必要的數據。 sender參數將是被點擊的表格單元格,您可以使用它來查找選定的行。

+0

應該是'performSegueWithIdentifier:sender:' – Rick

+0

@Rick好趕上。固定。 – Caleb

+0

@Caleb - dvc代碼不是我卡住的那個,它是LVC代碼。我不知道如何連接桌面視圖,以便下一組數據進行下鑽。例如,我想要去tabledata1> tabledata2> tabledata3> DetailViewController。你能否詳細說明如何做到這一點?非常感謝您的耐心! – user1516264