Segue 2视图控制器转发不起作用

时间:2015-04-22 03:45:57

标签: ios objective-c iphone storyboard segue

我有3 viewControllersviewController1viewController2相关联(通过segue id“first”),viewController2viewController3相关联(通过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,因为它会变得非常混乱。)

3 个答案:

答案 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名称,检查以下链接,

Check the answer