final class ViewModel {
var selectedDateChanged: ((Date) -> Void)?
var selectedDate: Date {
didSet {
selectedDateChanged?(selectedDate)
}
}
init(selectedDate: Date = .now) {
self.selectedDate = selectedDate
}
}
let viewModel = ViewModel()
viewModel.selectedDateChanged = { date in
// now you have the fact that it changed
// and the new value to use, checking the month
print(date)
}
viewModel.selectedDate = .now
2条答案
按热度按时间y3bcpkx11#
您应该将IBAction附加到选择器的valueChanged事件。
(You可以在Interface Builder中完成,也可以在选择器上调用
addTarget(_:action:for:)
。)该操作将在用户更改日期的任何部分时被调用。然后,您需要跟踪上一个日期并自己检测月份的变化。
w46czmvw2#
如果你使用的是视图模型,你可以很容易地通过以下方式处理:
在下面的游戏中运行,看看我的意思: