在didSelectRowAtIndexPath中使用展开segue?

5 objective-c stack-unwinding didselectrowatindexpath ios

我有一个根视图控制器A,它将segue推送到表视图控制器B.当在B中选择一行时,我想使用展开segue返回到A并将行中的文本传递回根视图A.然后我使用准备segue方法将stint发送回如下:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
     ViewControllerA *vca = (ViewControllerA *)segue.destinationViewController;
    vca.textString = [[_objects objectAtIndex:indexPath.row] objectForKey:@"title"];
}
Run Code Online (Sandbox Code Playgroud)

但是我不知道该怎么做,就是在didSelectRowAtIndexPath方法中调用unwind segue.

我在这里先向您的帮助表示感谢.

rde*_*mar 14

不要打电话.在控制器B的表视图中连接来自单元格的展开segue,并通过触摸单元格来调用展开segue.您不需要在all处实现didSelectRowAtIndexPath.您可以从sender(您将触摸的单元格)获取prepareForSegue中的indexPath,

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UITableViewCell *)sender{
     ViewControllerA *vca = (ViewControllerA *)segue.destinationViewController;
     NSIndexPath *selectedPath = [self.tableView indexPathForCell:sender];
     vca.textString = _objects[selectedPath.row][@"title"];
}
Run Code Online (Sandbox Code Playgroud)

  • 这种技术的优点是执行的代码可以在segue之前运行,而`didselectRowIndexAtPath`在完成segue之后运行*.谢谢! (2认同)