好吧,正如我在主题中所说,我的问题是我正在以编程方式选择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];
}
}
答案 0 :(得分:6)
UITableView
上的文档指定:
调用此方法不会导致委托接收tableView:willSelectRowAtIndexPath:或tableView:didSelectRowAtIndexPath:message,也不会向观察者发送UITableViewSelectionDidChangeNotification通知。
因此它不会触发任何动作。如果您使用的是segues,则可能需要在performSegueWithIdentifier:sender:
类上使用UIViewController
(最有可能是self
)。您可以指定标识符和发送元素(很可能是单元格)。