【发布时间】:2017-01-09 00:33:27
【问题描述】:
我不是以英语为母语的人,我正在与翻译一起写作。 我想让你了解上下文是否奇怪。
我的问题是, 按下按钮时,定时器工作,但切换视图时,定时器不工作。
我想知道即使视图发生变化,如何保持计时器。
var time : Int = 0
var onehour : Int = 60
var timer = Timer()
@IBAction func pressSuncream(_ sender: Any) { // Suncream 버튼
useSuncream.setImage(UIImage(named: "test"), for: UIControlState.normal)
if #available(iOS 10.0, *) {
let content = UNMutableNotificationContent()
content.title = "hello"
content.body = "timer"
content.badge = 1
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 3600, repeats: false)
let request = UNNotificationRequest(identifier: "timerdone", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(QuestView.updatetime), userInfo: nil, repeats: true)
} else {
// Fallback on earlier versions
}
}
func updatetime() {
time += 1
if time == 60 {
time = 0
onehour -= 1
DispatchQueue.main.async {
self.suncreamTime.text = String(self.onehour)
}
}
}
【问题讨论】:
-
你如何处理视图?它是释放还是保留在堆栈中?
-
我正在使用导航控制器视图,当我在主视图中按下按钮时,它会转到 timerView。在 timerView 中,按下按钮激活计时器并按下返回按钮移动到主视图我从主视图切换到 timerView 时使用了 show segue。请理解我是初学者,无法完全理解您的问题。
-
嗯,这确实回答了它。因此,您有一个视图,其中包含计时器。当你按下一个按钮时,你会返回到前一个视图控制器,视图被释放,它被释放,类中的所有对象也是如此,所以你的计时器不会工作。