开始使用Storyboards -iOS后,App delegate不起作用

时间:2012-11-16 16:57:32

标签: ios storyboard appdelegate

我的游戏有一个小问题。我想在游戏中断时停止游戏。

当我使用xib文件时,我在stopGame中调用它时,我的applicationWillResignActive方法正常工作。当我将其更改为故事板时,它停止工作.. applicationWillResignActive仍然适用于故事板并调用我的stopGame方法,但由于某种原因,我的游戏不会停止..

有人遇到过这样的问题吗?可能的解决方案请.. 提前谢谢..

一些代码

App Delegate:

- (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];
}

LEVEL_1

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

1 个答案:

答案 0 :(得分:0)

当您使用故事板时,应用程序的默认主入口点是故事板,从最初的viewController开始(具有来自故事板左边缘的箭头的那个)。在应用程序启动时,初始化的视图控制器被取消归档,初始化并且其视图以动态方式添加到主窗口中。 因此,您在applicationDidFinishLaunching中的代码是分配另一个 VC,这与应用程序加载的不同。因此,您将stopGame消息发送到错误的VC。 从applicationDidFinishLaunching和applicationWillResignActive中删除所有引用mainViewController的代码,然后在applicationWillResignActive中添加:

[(MainViewController *)self.window.rootViewController stopGame];