ViewController转换时如何防止定时器重置

时间:2017-06-28 02:47:54

标签: ios timer

我在我的ViewController A中运行一个计时器作为我的主视图控制器。 计时器在viewDidLoad()中初始化如下:

var timer = CustomizedTimer()

它从15分钟开始倒数。

当用户从ViewController A快速转到SettingViewController时,计时器会再次重置为15分钟。

我尝试将计时器实例放入AppDelegate,但它不起作用。 我需要做的是,每当用户切换视图控制器时,让计时器在后台运行。 那么,如何解决这个问题?提前谢谢。

2 个答案:

答案 0 :(得分:1)

只需创建一个单独的类来保存您的Dim Range1 As Range Dim Range2 As Range Set Range1 = Range("B5:H5") Set Range2 = Range("B9:H9") 'Display the value in row 5 for the current column MsgBox Cells(Range1.Row, Selection.Column).Value 'Display the value in row 9 for the current column MsgBox Cells(Range2.Row, Selection.Column).Value 'Change row 9 to be the value from row 5 Cells(Range2.Row, Selection.Column).Value = Cells(Range1.Row, Selection.Column).Value 'Display the updated value in row 9 for the current column MsgBox Cells(Range2.Row, Selection.Column).Value ,但是,如果您从Timer推送到ViewController A,第一个vc将不会被删除,并且您的计时器仍会运行,或者您正在SettingViewController或之后创建计时器,然后它将再次创建,从而重置您的计时器

样品:

viewWillAppear

称之为:

class TimerHelper {
    static let shared = TimerHelper()
    var timer: Timer!
}

用基于目标替换块也很好,将其指向主类以执行代码

答案 1 :(得分:0)

抱歉,我不能给你一个完整的例子,但也许你可以使用Threads来实现这个行为。