1

我在 UiViewController 中有一个简单的游戏(没有游戏引擎,例如 Cocos2d),当我输了时,我有一个重新启动游戏的按钮。

所以,我所拥有的是

    - (IBAction) restart:(id)sender {
        \\Some incorrect way of reseting my view
    }

我努力了

    - (IBAction) restart:(id)sender {
        [self viewDidLoad];
    }

但是随后在我的视图中出现了多个图形副本...实现此方法的正确方法是什么?

注意:我正在使用 ARC。

4

3 回答 3

1

听起来好像这是一个单视图应用程序。有了这个假设,您是否能够创建重新启动方法,并且在此方法中您只需检查变量和值是否已初始化、具有值或未创建。您将检查是否需要创建变量或简单地重置它们并创建“开始”状态。

我打算使用此方法首先通过从 viewDidLoad 内部调用该方法来初始化和启动游戏,然后在您打算重置时调用该重置方法来清除游戏。您不想使用viewDidLoad它,因为它只打算在视图初始化并第一次加载时运行。

于 2012-10-11T19:57:34.563 回答
0

正如您所发现的,viewDidLoad:它旨在由应用程序框架调用,而不是您的代码。

您问题的答案实际上取决于您的游戏逻辑。视图不知道如何重置自己,除非您告诉它要显示什么作为其起始状态。

于 2012-10-11T15:38:50.613 回答
0

如果你想回到开头,那么你应该创建一个视图控制器的新实例(它将从头开始重新创建它的视图)。按钮的操作方法需要连接到最初实例化视图控制器的任何类。如何做到这一点,取决于你的应用程序的结构。

于 2012-10-11T16:07:29.820 回答