处理去背景的比赛

时间:2014-03-12 20:20:12

标签: ios iphone objective-c

我的目标是让我的游戏优雅地处理暂时中断(电话,Siri,短信,点击主页按钮)。我知道delegate.m文件中的- (void)applicationWillResignActive:(UIApplication *)application- (void)applicationDidBecomeActive:(UIApplication *)application是必要的。但是我不知道如何完成这项任务。我的游戏正在NSTimer上运行,我还有一个“得分”计时器,背景音乐和暂停和播放按钮。

我检查了答案,但没有,并且有明确的解释。我也看到了不寻常的选择。我想知道完成这项工作的最佳编程实践。我是编程的新手,所以非常感谢明确而精确的解释(带代码)。

谢谢。 :)

2 个答案:

答案 0 :(得分:1)

我们假设您的暂停按钮与-(IBAction)pauseButtonClicked {

相关联

然后使用:

- (void)applicationWillResignActive:(UIApplication *)application {//or whatever method you are using
     [self pauseButtonClicked];
}

答案 1 :(得分:1)

在你的AppDelegate.m中,在willResignActive上发布通知:就像这样。

- (void)applicationWillResignActive:(UIApplication *)application {

    [[NSNotificationCenter defaultCenter] postNotificationName:@"willResignActive" object:nil userInfo:nil];
}

然后,如果需要,您可以添加如下所示的观察者。现在,只要应用程序离开前景,就会调用viewController的pauseButtonClicked方法。

-(void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pauseButtonClicked:) name:@"willResignActive" object:nil];
}

不要忘记在不再需要时移除观察者。

-(void)viewDidDisappear:(BOOL)animated {

    [super viewDidDisappear:animated];

    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"willResignActive" object:nil];
}