争论到当前的视图UItableView

我在tableview中有一个未定义的层次(深度),所以我希望能够在视图和本身之间创build一个segue,这样我就可以调用它,只要我有子级别发现。 我怎样才能做到这一点 ?

我想直接使用[self.navigationView pushViewController]当我需要它,但我想新的控制器使用SB中定义的视图。

谢谢,

编辑:现在唯一的解决scheme,我已经find了复制的VC,设置VC1和VC2之间的称为“showNext”,和VC1和VC2之间的segue调用相同的方式。 没有更好的解决scheme吗?

如果你使用的是dynamic的单元格原型,你显然可以从表格视图单元格到控制器的顺序没有任何问题。

从单元格到控制器

当你继续下去的时候,你会得到:

循环赛

但让我们想象一下,有一些原因不适合你,例如,你不能从单元格中获得一个segue(例如,你需要从didSelectRowAtIndexPath调用segue,而不是在select单元格时)。 在这种情况下,你不能使用以前的技术。

在这种情况下有几个选项:

  1. 正如Chris指出的那样 ,如果只支持iOS 6及以上版本,请使用上述技术,但是(a)确保您的didSelectRowAtIndexPath使用self作为sender ,然后让shouldPerformSegueWithIdentifier只允许segue,如果sender == self sender是表格视图单元格,它将被取消);

  2. 也许更容易,只是不要定义一个segue,并有你的didSelectRowAtIndexPath手动instantiateViewControllerWithIdentifier ,然后按适当的推/呈现该视图控制器; 要么

  3. 你可以使用下面的方法:总之,在你的视图控制器中添加一个button(拖到底部的栏),它不会出现在视图上,但你可以使用它的segues 。 所以首先,将圆angular的button拖到场景底部的控制器栏中:

    拖动按钮

    现在你可以从这个button到你的视图控制器:

    使隐藏按钮继续

    因此,你最终又得到了自我指涉:

    最终按钮继续

    你必须给这个segue一个标识符,所以你可以通过performSegueWithIdentifier编程方式调用它,但它的工作原理。 不是最优雅的解决scheme,但我认为它比在故事板上有一个额外的场景要好。

这些都不是理想的,但你有很多select。

这个过程对我来说是完全一样的

像平常一样在故事板中设置你的tableview。 不要给你的原型单元格一个单元格标识符。 像上面那样设置你的继续,从单元格拖到控制器。

在你的viewDidLoad中注册单元类

 //register the cell identifier as we are not loading form a storybard [_aTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"CellID"]; 

在你的cellForRowAtIndexPath设置你的单元格

 static NSString *CellIdentifier = @"CellID"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

现在你可以使用didSelectRowAtIndexPath并调用performSegueWithIdentifier。 prepareForSegue只会被调用一次。