2016-08-17 13 views
3

В моем приложении, которое я пишу, чтобы узнать swift и iOS9, я пытаюсь приостановить мой NStimer, когда пользователь дважды щелкает кнопкой мыши на домашней кнопке и переходит к переключателю приложений, accoridng to программирование ios9 matt neuberg, когда пользователь дважды нажимает кнопку «Домой», теперь пользователь может работать в интерфейсе переключателя приложений. Если ваше приложение является самым передним, ваше приложение делегат получает это сообщение: applicationWillResignActive:Как обнаружить кратковременную кнопку дома в ios9

Но мой таймер останавливается только тогда, когда я нажимаю кнопку домой один раз, и когда я дважды нажмите и иметь приложение переключатель, я вижу свой отсчет таймера, любые идеи ?

+2

показать вам код в '' applicationWillResignActive – Igor

+0

Shud i include code in applicationWillResi gnActive просто использует nsnotification, так как мое действие селектора, как указано ниже, переопределяет func viewDidLoad() { super.viewDidLoad() // приостанавливать игру, когда кнопка дома дважды нажата. . NSNotificationCenter.defaultCenter() addObserver (самостоятельно, селектор: #selector (ViewController.pauseGame), имя: UIApplicationWillResignActiveNotification, объект: ноль) } внутри паузы игры FUNC, timer.invalidate абонент утра() –

ответ

1

Попробуйте добавить эти строки в AppDelegate.swift:

static let kAppDidBecomeActive = "kAppDidBecomeActive" 
static let kAppWillResignActive = "kAppWillResignActive" 

func applicationDidBecomeActive(application: UIApplication) { 
    // Your application is now the active one 
    // Take into account that this method will be called when your application is launched and your timer may not initialized yet 
    NSNotificationCenter.defaultCenter().postNotificationName("kAppDidBecomeActive", object: nil) 
} 

func applicationWillResignActive(application: UIApplication) { 
    // Home button is pressed twice 
    NSNotificationCenter.defaultCenter().postNotificationName("kAppWillResignActive", object: nil) 
} 

Кроме того, установите контроллер представления в качестве наблюдателя этих уведомлений:

override func viewDidLoad() { 
    super.viewDidLoad() 

    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(pauseGame), name: AppDelegate.kAppWillResignActive, object: nil) 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(resumeGame), name: AppDelegate.AppDelegate.kAppDidBecomeActive, object: nil) 

}