6

我已经将一个容器视图拖到我的一个视图控制器上。这带有一个嵌入 Segue。运行产生这个:

'Could not instantiate class named UIStoryboardEmbedSegueTemplate'

因此,从其他几个 stackoverflow 问题来看,这似乎没有在 iOS 5 中实现。但是,这些问题并没有建议修复。XCode 不会让我使用任何其他类型的 segue。

如果答案是创建一个自定义容器视图,我会这样做。在过去的几天里,我已经看到了大量的代码。只是想知道是否有办法使用提供的 Container View 对象来做到这一点。

4

1 回答 1

9

问题是 Embed segue 是 iOS 6+。它失败是因为您试图实例化 iOS 5 中不存在的 EmbedSegue 内部类。如果您需要 iOS 5 支持,明显的解决方案是不要使用 EmbedSegue :)

另一个问题来了——改用什么?我现在遇到了同样的问题;如果我找到任何优雅的架构解决方案,我会分享。


对于任何“老派”的 iOS 开发人员来说,这个解决方案似乎都很明显。这是你如何做到的。

  1. 在您的“父”视图控制器中实例化“子”视图控制器 viewDidLoad: 或任何合适的时候
  2. [自我 addChildViewController:childVC];
  3. [self.view addSubview:childVC.view];
  4. childVC.view.frame = ....;

现在您应该在 nib 中看到您为子 VC 所做的视图,或者情节提要将显示在您指定它的父视图中。

希望这将有助于任何寻求灵魂的人解耦他们的逻辑:)

干杯,丹

于 2013-01-31T15:46:47.060 回答