2012-02-08 126 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