他の2つのViewControllerを管理するViewControllerの使用
質問
オンラインマップ(MapKitとGoogleマップを使用)とオフラインマップ( Route-Me )。
これらのmapVCの切り替えを管理し、ビューコントローラーを1つの別個のビューコントローラーとして使用できるようにするために、独自のジェネラコダイスタグコードを作成しました。これは、アプリケーション全体で使用する新しいmapVC
witchのofflineMapVC
とonlineMapVC
インスタンス変数を作成することで実現しました。
まず、すべてがうまくいくようですが。ただし、このアプローチを長時間使用していると、階層でViewControllerを使用したためにいくつかの問題が発生しました。
解決
私自身、ビューコントローラーをビューコントローラーに配置しました。同じことをするよりもはるかに優れたプログラマーを見てきました。 (RobNapierの「iOS5プログラミング-限界を押し上げる」を参照してください。彼は頻繁に言及しています。)同じビューとサブビューを直接制御するビューコントローラーが複数ない限り、問題はありません。
Jonah Williamsがその記事を書いたので、iOS5はカスタムコンテンツViewControllerでのViewController階層の使用を形式化したと思います。 mapVCをカスタムコンテンツビューコントローラーと見なし、onlineMapVCとofflineMapVCを子ビューコントローラーとして実装することもできます。
(Appleのドキュメントリンクは頻繁に変更される傾向があるため、ドキュメントのGoogle「カスタムコンテンツビューコントローラ」)
「2つのViewControllerを切り替える」ことで、あなたの質問に答えるのに役立つ、意味するところにもう少しコンテキストを与えることができれば。通常、複数のViewControllerを同時にアクティブにします。私はそれらを切り替えません。 (私は同じアプリケーションでナビゲーションコントローラーとタブバーコントローラーを使用していますが、それらがどのように機能するかを知っていて、別の質問をしていると思います。あなたの場合の詳細が明確ではありません。)