6

コンテナ ビューをビュー コントローラの 1 つにドラッグしました。これには Embed Segue が付属しています。実行すると、次のようになります。

'Could not instantiate class named UIStoryboardEmbedSegueTemplate'

したがって、他のいくつかのスタックオーバーフローの質問から、これは iOS 5 では実装されていないようです。しかし、質問は修正を示唆していませんでした。XCode では、他の種類のセグエを使用できません。

答えがカスタム コンテナ ビューを作成することである場合は、それを使用します。過去数日間、そのためのコードをたくさん見てきました。提供された Container View オブジェクトを使用してこれを行う方法があるかどうか疑問に思っています。

4

1 に答える 1

9

問題は、Embed segue が iOS 6 以降であることです。iOS 5 に存在しない EmbedSegue 内部クラスをインスタンス化しようとしているために失敗します。明白な解決策は、iOS 5 のサポートが必要な場合は EmbedSegue を使用しないことです:)

ここで別の質問が来ます - 代わりに何を使用しますか? 現在、まったく同じ問題が発生しています。そのための優雅なアーキテクチャソリューションが見つかったら共有します。


「昔ながらの」iOS開発者にとって、解決策は非常に明白であるように見えます。その方法は次のとおりです。

  1. 「親」View Controllerで、「子」View ControllerをviewDidLoadでインスタンス化します:または適切な場合はいつでも
  2. [self addChildViewController:childVC];
  3. [self.view addSubview:childVC.view];
  4. childVC.view.frame = ....;

これで、nib またはストーリーボードで子 VC に対して行ったビューが、指定した親のビューに表示されるはずです。

願わくば、これが探求する魂が彼らの論理を切り離すのに役立つことを願っています:)

乾杯、ダン

于 2013-01-31T15:46:47.060 に答える