2016-08-17 21 views
3

swiftとiOS9を学ぶために書いているアプリで、私はNStimerを一時停止しようとしています。ユーザーがホームボタンをダブルクリックしてアプリスイッチャーになります。ユーザーがホームボタンをダブルクリックすると、ユーザーはアプリスイッチャーインターフェースで作業できるようになりました。 applicationWillResignActive:あなたのアプリケーションが最前面にある場合は、アプリのデリゲートは、このメッセージを受信ios9でタップホームボタンを2回検出する方法

しかし、私は一度ホームボタンをタップすると、私は二回タップすると、アプリスイッチャーを持っているとき、私のタイマーは一時停止し、私は私のタイマーカウント、任意のアイデアを参照してください?

+2

あなたは 'applicationWillResignActive' – Igor

+0

のコードを示してShud私はapplicationWillResiのコードを含んでいます。gnActiveは、以下に書かれているように、セレクタアクションに沿ってnsnotificationを使用しています。func viewDidLoad(){ super.viewDidLoad() //ゲームを一時停止するホームボタンを2回タップします。 NSNotificationCenter.defaultCenter()addObserver。(自己、 セレクタ:#selector(ViewController.pauseGame)、 名:UIApplicationWillResignActiveNotification、オブジェクト:なし) }ポーズゲームFUNC、AM発信者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) 

} 
関連する問題