【问题标题】:iOS can not find segue in master detail APPiOS在master detail APP中找不到segue
【发布时间】:2023-03-11 08:34:05
【问题描述】:

我有一个使用情节提要的 Xcode5、SDK 7.0 的硕士详细应用程序。

这是故事板的一部分:

master 是一个标签栏控制器,它有两个标签,我想将视图推送到其中一个。 所以我 ctrl + 从导航控制器拖动到我的新视图控制器(上图中的“添加类别视图控制器”)

导航控制器的根视图控制器有一个按钮,按钮动作是:

- (IBAction)addBtnPressed:(id)sender {
    [self.navigationController performSegueWithIdentifier:@"toAddCetegory" sender:self];
}

这里有一个例外:

Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'toAddCetegory'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

但如果我将此按钮操作代码更改为:

- (IBAction)addBtnPressed:(id)sender {
    AddCategoryViewController *addVC = [self.storyboard instantiateViewControllerWithIdentifier:@"addCategoryView"];
    [self.navigationController pushViewController:addVC animated:YES];
}

它可以很好地工作,点击按钮时会显示新视图。

我想知道我在 segue 的方式有什么问题?

任何帮助表示赞赏!

【问题讨论】:

    标签: ios segue


    【解决方案1】:

    您正在从导航控制器的根视图控制器(在您的代码中)执行推送转场,但您已将推送转场连接到导航控制器而不是根视图控制器(在情节提要中)。 尝试将 push segue 连接到根视图控制器,这样就可以了。

    【讨论】:

    • 非常感谢!并且代码也应该更改。 [self.navigationController.topViewController performSegueWithIdentifier:@"toAddCetegory" sender:self];
    • 是的!它也需要改变。
    猜你喜欢
    • 2020-12-31
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2015-11-11
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多