Segue 2 视图控制器转发不工作

Segue 2 view controllers forward not working

我有 3 个viewControllersviewController1 链接到 viewController2(通过 segue id "first"),viewController2 链接到 viewController3(通过 segue id "destinationController")。我正在尝试从 viewController1viewController3。这是我的代码:

UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
[self.navigationController pushViewController:controller animated:YES];

它因以下错误而崩溃:

'Storyboard (<UIStoryboard: 0x7fb1a944be00>) doesn't contain a view controller with identifier 'DestinationController''

如何在不将第一个连接到最后一个的情况下继续 2 viewControllers? (我不想从 storyboard 添加一个 segue,因为它会变得非常混乱。)

请检查 "DestinationController" segue 是否与您当前 ViewController 绑定,您在其中编写此代码。

如果您执行从 VC1 到 VC3 的 segue,在您的情况下只有一种方法必须通过 VC2(您可以在 VC2 的 viewDidLoad 方法上设置条件以执行与 VC3 的 segue)。

请将 "DestinationController" 绑定到您当前的控制器,您的错误将会消失。

这可能对你有帮助:)

错误提示您没有标识符为 "DestinationController" 的控制器。从您问题中的文本来看,您似乎有一个名为 "DestinationController" 的 segue 标识符,但这与控制器上的标识符不同,后者是您在身份检查器中使用 "Storyboard ID" 字段设置的。

不过,我认为从第一个视图控制器到第三个视图控制器进行转接会更加一致。它还使情节提要中的控制器之间的导航更加清晰。

UIViewController3 *controller3 = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
[self.navigationController pushViewController: controller3 animated:YES];

不要忘记设置 storyboardId "DestinationController" 而不是 segue 名称, 检查下面的 Link,

Check the answer