【问题标题】:error "has no segue with identifier" adding split ViewController错误“没有标识符的segue”添加拆分ViewController
【发布时间】:2015-01-13 02:33:40
【问题描述】:

我正在添加一个带有表格视图和详细信息视图的拆分 ViewController:

The tableview works fine the cell are been populated and everything but when one of the cells is been selected I get the error:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<masterViewController: 0x15ce0e9b0>) has no segue with identifier 'detailView''

这是我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    [self performSegueWithIdentifier:@"detailView" sender:[_arrayOfFiles objectAtIndex:indexPath.row]];
}

这里是detailView的信息:

我在情节提要中添加标识符:

但现在我收到以下错误:

* 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“找不到用于 segue 'show tableVIew' 的导航控制器。只有当源控制器由 UINavigationController 的实例管理时,才能使用推送 segue。 * 首先抛出调用栈:

【问题讨论】:

    标签: ios objective-c xcode uitableview uistoryboard


    【解决方案1】:

    如果我没记错的话,你应该添加一个导航控制器来控制 MasterDetail View Controllers

    此外,要使拆分控制器发挥作用,必须将其设置为根控制器。

    祝你好运!

    【讨论】:

    • 但是如果你添加一个拆分视图只添加一个导航控制器。如何添加带有 2 个导航控制器的拆分视图控制器?
    • 从顶部菜单Editor &gt; Embed In &gt; Navigation Controller中选择视图控制器。
    【解决方案2】:

    您需要为 segue 设置标识符,而不是 viewController。如果单击连接两个 viewController 的线,则可以在属性检查器中设置 segue 的属性:

    【讨论】:

    • 我按照你的建议做了,但我收到了这个错误:由于未捕获的异常“NSGenericException”而终止应用程序,原因:“找不到用于 segue 'show tableVIew' 的导航控制器。只有当源控制器由 UINavigationController 的实例管理时,才能使用推送 segue。我更新了我上面的帖子
    • 请参阅下面@carlodurso 的答案 - 如果您想使用推送转场,您需要将详细视图控制器包装在导航控制器中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多