2016-09-16 7 views
1

firebaseデータベースで更新を探すのにNSTimerを使用しています。コードを私のviewDidLoad()の中に入れました。ユーザーがデータベース内のファイルを受信した NSTimerを停止してView Controllerを閉じる(即時)

NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: #selector(DriversInterfaceViewController.CheckFormularChild), userInfo: nil, repeats: true) 

は私が後藤他 ViewControllerにユーザーをしたいです。問題は、古い ViewControllerがバックグラウンドで実行されているか、または View Controllerを変更するとタイマーが停止しないことです。

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)    
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("recievedMission") as! RecievedMissionViewController 
self.navigationController!.pushViewController(nextViewController, animated: true) 

どのように私は古いView Controllerを閉じるか、または私はNSTimerprogrammaticallyを阻止する方法を教えてくださいありがとう!そう、タイマーを無効にするだけで、あなたのタイマーのインスタンスを格納し、あなたが別のコントローラに移動しているとき

yourTimer.invalidate() 

答えて

4

に従うようなど

0

こんにちは、タイマーイベント終了後、あなたはそのタイマーを無効にする必要があります//最初にNSTimerという1つのインスタンスを宣言します。

var timer:NSTimer? 

このオブジェクトを使用して、scheduledTimerの参照を保存します。

self.timer = NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: #selector(DriversInterfaceViewController.CheckFormularChild), userInfo: nil, repeats: true) 

今すぐ別のコントローラに移動しています。あなたは同じ変数を持つ別のタイマーを作成する必要がある場合

self.timer.invalidate() 
1
var timer:NSTimer? 

    timer = NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: 
    #selector(DriversInterfaceViewController.CheckFormularChild), userInfo: nil, repeats: true) 

    //ToStop Timer 

    timer.invalidate() 
    timer = nil 

は、それはそれを無効にした後、インスタンス変数のタイマーをnilに良いことだ、それがさらに混乱を避けることができます。

0

NSTimerが無効化されていない場合、View Controllerのインスタンスはメモリに保持され、ARCで解放されません。したがって、古いView Controllerが消えるときにNSTimerを無効にする必要があります。

override func viewWillDisappear(animated: Bool) 
{ 
    if self.timer != nil 
    { 
     self.timer!.invalidate() 
     self.timer = nil 
    } 
} 
0

はNSTimerをキャンセルするには、単に使用します。

timer?.invalidate() 

(このメソッドはUIを触れた場合)UIThreadでDriversInterfaceViewController.CheckFormularChild実行あなたの機能を確認するか、そうでなければ

をクラッシュますしてください
関連する問題