一个视图控制器上的多个视图控制器

时间:2012-07-10 17:35:21

标签: ios objective-c cocoa-touch uiviewcontroller

我想在iPad上创建一个双人游戏,但我真的不知道我该怎么做才对。我的概念就像两个玩家游戏的“水果忍者”(一个与其他游戏)。

我的意思是一个玩家将在viewcontrollerA中玩,另一个玩家将在viewcontrollerB中玩(这应该是从viewcontrollerA颠倒过来的。)

我该怎么办?我是否需要创建两个视图控制器并通过控制器包含显示,或者还有另一种更好的方法吗? 谢谢!

2 个答案:

答案 0 :(得分:6)

在iOS5中,控制器有一种幸运的方式来接收方向事件,添加/删除回调,并将它们正确地插入到响应链中。所以如果你打算这样做,这是最好的方法。只要你不做傻事,比如将相同的视图添加到两个UIViewControllers就可以了。

为什么这样?我看到逻辑将游戏引擎放在主控制器上,编写客户端,将该客户端封装在子视图控制器上,并将其重用于两个玩家。

如果您觉得需要这样的东西,也可以使用嵌套控制器来封装复杂性。示例:一个用于与游戏引擎通信的界面,另一个用于屏幕从引擎获取事件。

UIViewController包含很容易。您需要阅读6种方法并了解所谓的方法。欢迎您阅读文档,但简而言之:

例如,要将一个控制器嵌套在另一个控制器中,请将子视图添加为常规视图,并按以下顺序调用addChildViewController:和didMoveToParentViewController:

// from the parent view controller
ChildViewController *child = [ChildViewController new];
[self addChildViewController:child];
[self.view addSubview:child.view];
[child didMoveToParentViewController:self];

答案 1 :(得分:1)

最好的方法是让一个根视图控制器成为整个屏幕,然后是每个玩家屏幕的两个子视图。您不希望嵌套视图控制器