当我获得applicationWillResignActive时,我需要切换到暂停场景,这样用户无法在没有我的计时器运行的情况下浏览后台应用程序屏幕。我使用以下代码,但是直到我将应用程序带回前台后才切换到我的暂停场景。我做错了什么?
func applicationWillResignActive(_ application: UIApplication) {
if let liveWindow = window {
if let viewController = liveWindow.rootViewController {
if let rotopathViewController = viewController as? RotopathViewController {
rotopathViewController.pause()
}
}
}
}
我的视图控制器的暂停功能很简单。
func pause() {
game.score.pause()
rotopathView.presentScene(pausedScene)
}
它只是调用
func pause() {
elapsedTime += Int(round(Date().timeIntervalSince(intervalStartTime)))
isActive = false
}
如果我移动一些代码并确保在presentScene调用后设置isActive = false,则没有区别。另外,如果我删除isActive = false赋值,则没有区别。