我的游戏有一个小问题。我想在游戏中断时停止游戏。
当我使用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;
}
答案 0 :(得分:0)
当您使用故事板时,应用程序的默认主入口点是故事板,从最初的viewController开始(具有来自故事板左边缘的箭头的那个)。在应用程序启动时,初始化的视图控制器被取消归档,初始化并且其视图以动态方式添加到主窗口中。 因此,您在applicationDidFinishLaunching中的代码是分配另一个 VC,这与应用程序加载的不同。因此,您将stopGame消息发送到错误的VC。 从applicationDidFinishLaunching和applicationWillResignActive中删除所有引用mainViewController的代码,然后在applicationWillResignActive中添加:
[(MainViewController *)self.window.rootViewController stopGame];