【发布时间】:2015-04-22 03:45:56
【问题描述】:
我有 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''
如何在不将第一个连接到最后一个的情况下转接 2 viewControllers? (我不喜欢从storyboard 添加一个segue,因为它会变得非常混乱。)
【问题讨论】:
-
你不能那样做;必须在 stryboard 中连接一个 segue。但是无论如何,您在代码中所做的并不是一个转场。如果 viewController3 具有标识符“DestinationController”,那么您所拥有的应该可以工作。
-
vc2以DestinationController的标识符连接到vc3
-
我不知道你怎么会得到你得到的错误,因为它说你没有具有该标识符的控制器 - 我认为你所拥有的是一个 segue那个标识符。您需要控制器上的标识符(身份检查器中的故事板 ID)。
-
你一针见血!!谢谢!!
-
推荐哪种方式,
instantiateViewControllerWithIdentifier,还是我应该从vc1添加一个segue到vc3?
标签: ios objective-c iphone storyboard segue