以编程方式选择tableview上的单元格不会执行关联的segue

时间:2012-04-11 10:49:14

标签: ios uitableview segue

好吧,正如我在主题中所说,我的问题是我正在以编程方式选择tableview上的一个单元格,意图自动执行相关的segue。我有代码在相关的tableviewcontroller的viewWillAppear上执行此操作。

结果是选择了单元格,但不执行segue。你知道为什么吗?

到目前为止我在viewWillAppear上以编程方式执行segue以解决问题,但我很好奇为什么如果选择了单元格,segue不会自动执行...

顺便说一下。 segue必须正常,因为当我选择单元格点击时,它可以正常工作。

更多信息:我正在研究splitviewcontroller。左侧有tableviewcontroller,segue右侧有一个viewcontroller

非常感谢!

卡洛斯

相关代码:

- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

// Si no hay ninguna fila seleccionada, seleccionaremos la primera

// Obtenemos la fila seleccionada
NSIndexPath *filaSeleccionadaPath = [self.tableView indexPathForSelectedRow];

// Si no hay ninguna fila seleccionada
if (!filaSeleccionadaPath)
{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

}

}

1 个答案:

答案 0 :(得分:6)

UITableView上的文档指定:

调用此方法不会导致委托接收tableView:willSelectRowAtIndexPath:或tableView:didSelectRowAtIndexPath:message,也不会向观察者发送UITableViewSelectionDidChangeNotification通知。

因此它不会触发任何动作。如果您使用的是segues,则可能需要在performSegueWithIdentifier:sender:类上使用UIViewController(最有可能是self)。您可以指定标识符和发送元素(很可能是单元格)。