我在我的 ViewController A
中运行一个计时器作为我的主视图 Controller 。
计时器在 viewDidLoad()
中初始化如下:
var timer = CustomizedTimer()
从 15 分钟开始倒计时。
当用户从 ViewController A
快速切换到 SettingViewController
时,计时器再次重置为 15 分钟。
我尝试将计时器实例放入AppDelegate
中,但它不起作用。
我需要做的是,每当用户切换 View Controller 时,保持计时器在后台工作。
那么,如何解决这个问题?提前致谢。
最佳答案
只需创建一个单例类来保存您的 Timer
,而且,如果您从 ViewController A
推送到 SettingViewController
,第一个 vc 将不会取消初始化,您的计时器仍将运行,或者您正在 viewWillAppear
或稍后创建计时器,然后它将再次创建,从而重置您的计时器
示例:
class TimerHelper {
static let shared = TimerHelper()
var timer: Timer!
}
这样调用它:
TimerHelper.shared.timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { (timer) in
print("a")
})
将 block 替换为基于目标也可以,将其指向您的主类来执行代码
关于ios - ViewController 转换时如何防止计时器重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44792837/