【问题标题】:Segue 2 view controllers forward not workingSegue 2 视图控制器转发不起作用
【发布时间】:2015-04-22 03:45:56
【问题描述】:

我有 3 个viewControllersviewController1 链接到 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


【解决方案1】:

错误是告诉您没有标识符为“DestinationController”的控制器。从您的问题中的文本来看,您似乎有一个名为“DestinationController”的 segue 标识符,但这与控制器上的标识符不同,控制器上的标识符是您在 Identity Inspector 中使用“Storyboard ID”字段设置的。

我认为从第一个视图控制器到第三个视图控制器进行segue 会更加一致。它还使故事板中控制器之间的导航更加清晰。

【讨论】:

    【解决方案2】:

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

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

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

    这可能对你有帮助:)

    【讨论】:

      【解决方案3】:
      UIViewController3 *controller3 = [self.storyboard instantiateViewControllerWithIdentifier:@"DestinationController"];
      [self.navigationController pushViewController: controller3 animated:YES];
      

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

      Check the answer

      【讨论】:

      • 感谢您的回答,但@rdelmar 已经回答了同样的问题。检查他的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多