【发布时间】:2019-04-26 17:59:19
【问题描述】:
我想知道当我想将数据从模型传递到控制器时,最佳实践是什么。
我想做的事
我想在时间变化时更新标签。
CurrentTime.swift(模型)
var timer: Timer?
var currentTime: String?
init() {
if timer == nil{
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateCurrentTime), userInfo: nil, repeats: true)
}
}
@objc private func updateCurrentTime(){
let df = DateFormatter()
df.dateFormat = "HH:mm"
df.timeZone = TimeZone.current
let timezoneDate = df.string(from: Date())
currentTime = timezoneDate
}
ViewController.swift
class ViewController: UIViewController {
@IBOutlet var timeLabel: UILabel!
var currentTime = CurrentTime()
override func viewDidLoad() {
}
@IBAction func closeBtnWasPressed(_ sender: UIButton) {
dismiss(animated: true, completion: nil)
}
}
【问题讨论】:
-
您可以发布
Notification或提供一种在您的模型中注册观察者闭包的方法。您应该将日期格式化程序设置为惰性私有属性,而不是在每次计时器触发时创建它。创建日期格式化程序的成本相对较高。
标签: ios swift model-view-controller