0

ゲームに小さな問題があります。ゲームが中断されるたびにゲームを停止したいです。

私のstopGameメソッドは、applicationWillResignActivexib ファイルを使用しているときに呼び出したときに機能していました。ストーリーボードに変更すると、動作しなくなりました..applicationWillResignActiveストーリーボードで引き続き動作し、stopGameメソッドが呼び出されますが、何らかの理由でゲームが停止しません..

誰かがこのような問題に直面しましたか? そして可能な解決策をお願いします..よろしくお願いします..

いくつかのコード

アプリのデリゲート:

- (BOOL) application: (UIApplication *) application
didFinishLaunchingWithOptions: (NSDictionary *) launchOptions
{    
        mainViewController = [[MainViewController alloc] init];

        [self.window addSubview: mainViewController.view];
        [self.window makeKeyAndVisible];

        return YES;
}


- (void) applicationWillResignActive: (UIApplication *) application
{    
    [mainViewController stopGame];
}

MainViewController

- (IBAction) stopGame
{
        self.gameRunning = NO;
        [currentLevel deactivate];
}

レベル1

- (void) deactivate
{
        [levelTimer invalidate];
        levelTimer = nil;
}
4

1 に答える 1

0

ストーリーボードを使用する場合、アプリケーションのデフォルトのメイン エントリ ポイントはストーリーボードであり、最初の viewController (ストーリーボードの左マージンから矢印が伸びているもの) から始まります。アプリの起動時に、最初のビューコントローラーがアーカイブ解除され、初期化され、そのビューがメイン ウィンドウに動的に追加されます。したがって、applicationDidFinishLaunching にあるコードは別のVC を割り当てていますが、これはアプリによって読み込まれるものとは異なります。このため、stopGame メッセージを間違った VC に送信しています。applicationDidFinishLaunching と applicationWillResignActive から mainViewController を参照するすべてのコードを削除してから、applicationWillResignActive に以下を追加します。

[(MainViewController *)self.window.rootViewController stopGame];
于 2012-11-16T21:48:44.327 に答える