2013-07-07 67 views
1

我使用下面的教程從射線 http://www.raywenderlich.com/913/sqlite-101-for-iphone-developers-making-our-app如何更改故事板使用的initWithNibName?

即時得到的一切,除了詳細視圖工作從didselectrow填充

這是他

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (self.details == nil) { 

     self.details = [[[FailedBanksDetailViewController alloc] initWithNibName:@"FailedBanksDetailViewController" bundle:nil] autorelease];   
    } 
    FailedBankInfo *info = [_failedBankInfos objectAtIndex:indexPath.row]; 
    _details.uniqueId = info.uniqueId; 
    [self.navigationController pushViewController:_details animated:YES]; 
    [self performSegueWithIdentifier:@"testID" sender:self.view]; 
} 

但它是不使用故事板

有人可以幫助我,我到處搜索一個答案!

回答

0

嘗試:

self.details = [self.storyboard instantiateViewControllerWithIdentifier:@"FailedBanksDetailViewController"]; 

哪裏FailedBanksDetailViewControlleridentifier用於主要故事板視圖控制器。

而且由於您使用的是http://www.raywenderlich.com,故事板示例中您可以看一下here

0

幾個選項:

  1. 你可以提供你正在轉變爲一個「故事板ID」的場景(你這樣做在Interface Builder),然後使用instantiateViewControllerWithIdentifier代替initWithNibName

  2. 如果您在故事板中使用單元格原型,則根本不需要使用didSelectRowAtIndexPath方法,而只需將細胞原型中的segue添加到下一個場景。然後,您編寫一個prepareForSegue方法,將uniqueId傳遞給下一個場景。

    prepareForSegue可能看起來像:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
        if ([segue.identifier isEqualToString:@"DetailsSegue"]) 
        { 
         NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
         FailedBankInfo *info = [_failedBankInfos objectAtIndex:indexPath.row]; 
         [(FailedBanksDetailViewController *)segue.destinationViewController setUniqueId:info.uniqueId]; 
        } 
    } 
    

    顯然,更換DetailsSegue與您爲您的賽格瑞的故事板ID的任何名稱。

+0

非常感謝!這開始爲我工作,但是當我輸入的代碼,我得到一個錯誤 屬性'tableView'找不到'locationViewController *'類型的對象 任何想法? –

+0

當我嘗試在視圖控制器上使用表視圖時會發生這種情況,如果這有助於 –

+0

@Thomasrocks如果您在本教程中遵循,'FailedBanksListViewController'是一個'UITableViewController'子類,它提供了一個'tableView'屬性。我不知道這個'locationViewController'類是什麼。你只是添加一個tableview到一個'UIViewController'子類?如果是這樣,表視圖的IBOutlet是什麼?只需將'self.tableView'替換爲您的tableview的'IBOutlet'。 – Rob

1

當前您使用的代碼爲bob NIB和故事板。選擇1並堅持下去。如果您使用故事板,只需執行segue,然後處理prepareForSegue:sender:即可配置目標視圖控制器。