gpt4 book ai didi

ios - 手动启动 Viewcontroller 后找不到导航 Controller

转载 作者:行者123 更新时间:2023-11-28 22:06:15 26 4
gpt4 key购买 nike

我有一个带有表单的 View Controller ,提交后我需要应用程序返回“主页”页面,这是通过以下方式完成的:

ITViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"home"];
[svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:svc animated:YES completion:nil];

但是,一旦我完成此操作并尝试单击“主页”页面上的任何按钮,我最终会遇到错误:

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

我的 Storyboard是这样的:

enter image description here

电子邮件 View Controller 是我们返回的地方

最佳答案

用这个替换你的代码:

ITViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"home"];
UINavigationController *navcon = [[UINavigationController alloc] initWithRootViewController:svc];
[navcon setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:navcon animated:YES completion:nil];

您的问题是您要从导航 Controller 中呈现一个 ITViewController。然后你尝试执行一个 segue。由于没有导航 Controller ,您的应用程序会崩溃。将您的 ITViewController 嵌入到 UINavigationController 中,它将起作用。

编辑:

顺便说一句,如果你只是想回到主视图 Controller ,我建议不要分配一个新的 View Controller 并以模态方式呈现它,只需让你的导航 Controller 弹出到它的 Root View Controller 。而不是:

ITViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"home"];
[svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:svc animated:YES completion:nil];

做:

[self.navigationController popToRootViewControllerAnimated:YES];

关于ios - 手动启动 Viewcontroller 后找不到导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23891628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com