ios - 停止 NSTimer 并关闭 View Controller (快速)

标签 ios swift nstimer viewcontroller

我正在使用 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/

相关文章:

iOS:根据 View 位置动态更改 UILabel 对齐方式

IOS:使用 NSTimer 更新 UITableViewCell 中的标签

ios - 继续运行 NSTimer 切换背景和前景

ios - HERE Maps SDK iOS Swift 4 轮流导航启动时间过长

ios - 在 GameScene.swift 中显示 UIActivityViewController

swift - 如何从泛型类<T>调用基类上的静态方法?

swift - 如何更新 Apple map 中的路线 - iOS 13.0 中的 Xcode Swift 5?

ios - 停止并重置 NSTimer

android - 如何重定向到移动应用程序?

ios - 将 UIImage 从一个 Viewcontroller 传递到另一个 Viewcontroller 得到 nil