2012-02-08 128 views
3

我正在與故事板。在將新的UItableViewController推入導航堆棧時,我對使用segues感到懷疑。如何做到這一點?當單元格中的點擊導致推送結果並僅使用didSelectRowAtIndexPath時,不會出現segue? 請分享您的意見。didSelectRowAtIndexPath和segues

回答

7

你根本沒有提及它,但通過提及segue來判斷你正在使用故事板。

使用故事板時,有一種新的方式來顯示一個新的視圖控制器。通過使用seque將UITableViewCell連接到Interface Builder中的新視圖控制器。當你這樣做時,不需要使用didSelectRowAtIndexPath:,因爲新的視圖控制器會自動顯示。不過,可以將新的視圖控制器準備segue,並設置參數,例如:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    // assumes only one type, more extensive checking before cast to 
    // make it safer is needed. 
    MyViewController *viewController = (MyViewController *) segue.destinationViewController; 

    viewController.detailObject = myModelObject; 
} 

對於未使用賽格瑞你可以使用普通的舊tableView:didSelectRowAtIndexPath:提供自己的行爲有關的任何的tableview細胞。

沒有正確的方法,只是使用看起來最簡單的任何東西。

+0

但你如何找到選定索引處的對象? – cortices 2013-01-18 10:24:49

+4

'[self.tableView indexPathForSelectedRow];' – 2013-01-18 10:26:04

+0

明白了,謝謝。那很快! – cortices 2013-01-18 10:34:02