我有3 viewControllers
。 viewController1
与viewController2
相关联(通过segue id“first”),viewController2
与viewController3
相关联(通过segue id“destinationController”)。我正试图从viewController1
转到viewController3
。这是我的代码:
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
[self.navigationController pushViewController:controller animated:YES];
崩溃时出现以下错误:
'Storyboard (<UIStoryboard: 0x7fb1a944be00>) doesn't contain a view controller with identifier 'DestinationController''
如何在不连接第一个到最后一个的情况下将viewControllers
变为第二个? (我不希望从storyboard
添加一个segue,因为它会变得非常混乱。)
答案 0 :(得分:0)
请检查&#34; DestinationController&#34; segue与您当前的ViewController绑定,您可以在其中编写此代码。
如果从VC1到VC3执行segue,在你的情况下只需要一种方法就可以通过VC2(你可以在VC2的viewDidLoad方法上设置条件来执行与VC3的segue)。
请绑定&#34; DestinationController&#34;到你当前的控制器,你的错误就会消失。
这可能对你有所帮助:)。
答案 1 :(得分:0)
错误告诉您,您没有带有标识符的控制器,&#34; DestinationController&#34;。从您问题中的文本看来,您似乎有一个名为&#34; DestinationController&#34;的segue标识符,但这与控制器上的标识符不同,您可以在Identity Inspector中使用&设置该标识符。 #34;故事板ID&#34;领域。
我认为从第一个到第三个视图控制器制作一个segue会更加一致。它还使故事板中的控制器之间的导航更加清晰。
答案 2 :(得分:0)
UIViewController3 *controller3 = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
[self.navigationController pushViewController: controller3 animated:YES];
别忘了设置storyboardId "DestinationController"
而不是segue名称,检查以下链接,