使用pipe理另外两个视图控制器的View Controller

我有一个offlineMapVC和一个onlineMapVC来支持在线地图(使用MapKit和Google地图)和离线地图(使用Route-Me )。

我做了我自己的mapVC来pipe理这些mapVCs的切换,并能够使用视图控制器作为一个单独的视图控制器。 好吧,我已经做了这个通过使我现在使用全新的mapVCofflineMapVConlineMapVC实例variables。

首先,所有的东西似乎都起作用。 然而,当使用这种方法更长的时间,我遇到了一些问题,因为我在一个层次结构中使用视图控制器。 我读这是错误的路要走。 pipe理两个视图控制器之间切换的正确方法是什么? 我的问题似乎很简单,但我找不到一个体面的解决scheme。

我把视图控制器放在视图控制器中,我看到了比我做的更好的程序员。 (请参阅Rob Napier的“iOS 5编程 – 推动极限”,他经常提到它)。只要你没有多个视图控制器直接控制相同的视图和子视图,你应该可以。

由于乔纳·威廉姆斯写了这篇文章,我认为iOS 5正式使用视图控制器层次结构与自定义内容视图控制器。 你可能会认为你的mapVC是一个自定义的内容视图控制器,并实现了onlineMapVC和offlineMapVC作为子视图控制器。

(苹果文档链接倾向于频繁更改,所以Google的“Custom Content View Controller”为文档。)

如果您可以通过“在两个视图控制器之间切换”来提供更多的上下文来解决您的问题。 一般来说,我有多个视图控制器同时处于活动状态。 我不会在他们之间切换。 (我在同一个应用程序中使用了导航和标签栏控制器,但是我假设你已经意识到这些工作是如何工作的,而你又提出了一个不同的问题,目前还不清楚你的情况是什么。