【发布时间】:2020-11-11 12:30:41
【问题描述】:
我有一个关于 iOS 应用程序中的 MVC 设计的问题。
假设我用这个手势识别器设置了一个UIView 类:
class CardView: UIView {
init(frame: CGRect) {
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePan(gesture:)))
self.addGestureRecognizer(panGesture!)
}
@objc func handlePan(gesture : UIPanGestureRecognizer) {
switch gesture.state {
case .began:
handleBegan(gesture)
case .changed:
handleChanged(gesture)
case .ended:
handleEnded(gesture)
sendDataToDatabase()
case .cancelled:
turnCardBackToOrigin()
default:
break
}
}
}
如您所见,视图手势的目标是视图本身。
现在假设在 switch case .ended 中我想将数据发送到数据库。
既然我要让视图(CardView)与模型(数据)对话,这会违反 MVC 设计规则吗?这个代码设计实现按照MVC是不是错了?
【问题讨论】:
标签: swift model-view-controller uiview uipangesturerecognizer programmatically