tableViewController を containerViewController の子ビュー コントローラーとして追加したいと考えています (以下を参照)。Apple のView Controller Programming Guideによると、containerViewController 内の次のコード行でこれを実現できます。
[self addChildViewController:tableViewController];
[self.view addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
実際、それはうまくいきます。問題は、tableViewController のビューを containerViewController のルート ビューのサブビューとして追加したくないことです。代わりに、containerViewController のルート ビューのサブビューである containerView (画像を参照) のサブビューとして追加したいと考えています。そこで、上記のコードを次のように変更しました。
[self addChildViewController:tableViewController];
[self.contentView addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
アプリを起動すると、次のエラーですぐにクラッシュします。
キャッチされない例外「UIViewControllerHierarchyInconsistency」が原因でアプリを終了しています。理由:「子ビュー コントローラー: 親ビュー コントローラーが必要ですが、実際の親は:」です。
ここで何が問題なのですか?childViewController のビューをその containerViewController の特定のサブビューに追加することはできませんか? または、View Controller階層でエラーなしでこれを達成するにはどうすればよいですか?