我有一个UINavigationController和一个UITableViewController作为rootViewController。我从我的表视图的原型单元格创建了一个segue,并将它与另一个UIViewController连接。我的segue的标识符是“细节”。在表视图委托的tableView:didSelectRowAtIndexPath:方法(正在调用)中,我有以下行:
[self.navigationController performSegueWithIdentifier:@"Details" sender:nil];当运行我的应用程序并点击我的一个单元格时,会引发一个异常,因为'Receiver (<UINavigationController: 0x71c65b0>) has no segue with identifier 'Details''
这里有什么问题吗?
编辑
当我改变
[self.navigationController performSegueWithIdentifier:@"Details" sender:nil];转到
[self performSegueWithIdentifier:@"Details" sender:nil];下一个视图被推入,但我得到了以下错误:
2012-10-19 12:32:05.128 Numbers[44850:c07] nested push animation can result in corrupted navigation bar
2012-10-19 12:32:17.234 Numbers[44850:c07] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2012-10-19 12:32:17.236 Numbers[44850:c07] Unbalanced calls to begin/end appearance transitions for <DetailViewController: 0x74a1fb0>.显然,我不应该让我的当前视图控制器来完成这项工作,但是我的导航视图控制器(这就是它的目的)。回到后退按钮会产生奇怪的动画,就像警告警告我一样。
发布于 2012-10-19 12:46:00
只是猜测,但您是否可能通过代码连接了segue 和触发它?如果没有“特殊”原因,通常不需要调用performSegueWithIdentifier:sender。相反,只需将您的表视图单元格与所需的segue连接。
但是,,如果您调用performSegueWithIdentifier,就不要连接它!
发布于 2013-07-05 17:29:41
在Interface Builder中选择UITableViewCell。将其选择触发的segue连接到destinationViewController。在您的源UIViewController中,实现prepareForSegue:函数,并传递destinationViewController所有相关信息。无需打电话给performSegueWithIdentifier:
发布于 2015-03-04 07:23:02
只需在所选方法中执行此操作即可。
自执行sender:@“详细信息”发送者:零;
我认为您正在执行其他功能,也就是,它给嵌套的推送或在故事板中检查您的push segue带来了错误,即它是否正确地链接到下一个视图。
https://stackoverflow.com/questions/12962869
复制相似问题