停止NSTimer并关闭视图控制器(swift)

Vic*_*tor 1 nstimer viewcontroller ios swift

NSTimer用来在我的firebase数据库中查找更新.我把代码放在我的内部viewDidLoad().

NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: #selector(DriversInterfaceViewController.CheckFormularChild), userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)

当用户在数据库中收到文件时,我希望用户转到另一个文件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)
Run Code Online (Sandbox Code Playgroud)

我如何解雇旧的View Controller或如何停止NSTimer programmatically?谢谢!

Nir*_*v D 5

只需存储计时器的实例,然后在移动到另一个控制器时使计时器失效,以便首先声明一个实例NSTimer.

var timer:NSTimer?
Run Code Online (Sandbox Code Playgroud)

现在使用此对象存储scheduledTimer的引用.

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

现在简单地转移到另一个控制器.

self.timer.invalidate()
Run Code Online (Sandbox Code Playgroud)