5

好吧,正如我在主题中所说,我的问题是我以编程方式选择 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];

}

}

4

1 回答 1

7

上的文档UITableView指定:

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

因此它不会触发任何动作。如果您正在使用 segues,您可能希望performSegueWithIdentifier:sender:UIViewController课堂上使用(很可能self)。您可以指定标识符和发送元素(很可能是单元格)。

于 2012-04-11T11:24:10.927 回答