我正在使用 NSTimer
在我的 firebase
数据库中查找更新。我已将代码放入 viewDidLoad()
中。
NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: #selector(DriversInterfaceViewController.CheckFormularChild), userInfo: nil, repeats: true)
当用户收到数据库中的文件时,我希望用户转到另一个 ViewController
。问题是旧的 ViewController
在后台运行,或者计时器在更改 ViewController
时没有停止。
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("recievedMission") as! RecievedMissionViewController
self.navigationController!.pushViewController(nextViewController, animated: true)
如何关闭旧的 View Controller
或者如何停止 NSTimer
编程
?谢谢!
最佳答案
只需存储您的计时器实例,然后当您移动到另一个 Controller 时使计时器无效,因此首先声明一个 NSTimer
实例。
var timer:NSTimer?
现在使用此对象来存储您的 scheduledTimer 的引用。
self.timer = NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: #selector(DriversInterfaceViewController.CheckFormularChild), userInfo: nil, repeats: true)
现在简单地转移到另一个 Controller 。
self.timer.invalidate()
关于ios - 停止 NSTimer 并关闭 View Controller (快速),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528337/