我想在我的应用上实现此功能,但我似乎无法弄清楚如何使用这行代码。
- (void)applicationWillResignActive:(UIApplication *)application {
//our app is going to loose focus since there is an incoming call
[self pauseGame];
}
- (void)applicationDidBecomeActive:(UIApplication *)application{
//the user declined the call and is returning to our app
[self resumeGame];
}
我已经读过这个必须放在appdelegates但我似乎无法弄清楚当游戏当前在viewcontroller中时我怎么能调用我的暂停动作。
谢谢。
答案 0 :(得分:6)
您可以将消息发送给自己的视图控制器,而不是将消息发送给自己(也就是应用代理)。
例如,如果你的app委托有一个名为“gameViewController”的主游戏视图控制器的属性(实现暂停和恢复的方法):
- (void)applicationWillResignActive:(UIApplication *)application {
// our app is going to loose focus since there is an incoming call
[self.gameViewController pauseGame];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// the user declined the call and is returning to our app
[self.gameViewController resumeGame];
}
答案 1 :(得分:1)
我知道很久以前就回答了这个问题。但我想补充说,另一个(更具可扩展性)的解决方案是让感兴趣的各方(例如,UIViewControllers)注册对UIApplicationDidEnterBackgroundNotification和UIApplicationWillEnterForegroundNotification感兴趣。
这种方法的优点是,Application Delegate不需要直接了解可能需要响应输入后台/前景的对象。