【发布时间】:2014-11-02 22:52:19
【问题描述】:
尝试在UITableView 中设置从 4 个不同单元格触发的 4 个不同的转场,以转场到我的应用程序中的不同视图控制器。我的主菜单嵌入在导航控制器中。我通过控制从主菜单视图控制器拖动到我的 4 个不同的视图控制器来设置 segues。然后在didSelectRowAtIndexPath 我切换indexPath.row 并从这个方法实例化我的segues。我遇到的问题是执行 segue 时 SIGABRT 崩溃。 prepareForSegue 被调用,所以我知道 segue 正在被触发,但它导致了我似乎无法弄清楚的崩溃。代码贴在下面,任何帮助将不胜感激,谢谢。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
switch(indexPath.row)
{
case 0:
break;
case 1:
{
[self performSegueWithIdentifier:@"SecondViewController" sender:self];
//Also tried passing in the cell for the parameter "sender:" but this
//doesnt work either.
break;
}
//Other segues would be performed in a similar manner.
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
}
}
【问题讨论】:
-
你的 segues 是否从 tableview 连接到它们的目的地?这可能是问题所在(无论如何对我来说)尝试将 segues 从您拥有的视图控制器(即包含您的 tableview 的视图控制器)连接到目标视图控制器。希望这会有所帮助。
-
在哪里声明发生了 SIGABRT,您能否分享实际的异常 - 例如,究竟是什么导致了崩溃?另外,如果您转到情节提要中的相应segue,它是否名为SecondViewController?如果不是,那可能就是问题所在——它试图执行一个不存在的转场。
-
@Gismay 是的,segues 是从包含 tableView 的视图控制器连接的。一定是其他原因导致了问题。
-
@mMo 啊,我想我可能有更多信息。我的控制台由于某种原因关闭并且没有考虑它,但是从控制台这里是显示在异常上的内容:*** 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“找不到导航控制器对于 segue 'SecondViewController'。只有当源控制器由 UINavigationController 的实例管理时,才能使用 Push segues。'
标签: ios objective-c iphone uitableview swift