我正在尝试实现像MVC这样的设计模式,以达到代码不同部分之间低耦合的目的。网上有一些关于iOS和Swift UI开发以及MVC模式的材料,但我个人认为它们并没有太大帮助。
我想要理解的是,在Swift UI中,控制器类应该如何控制或呈现UI?
比如遵循MVC模式,视图不应该知道模型的外观,因此将对象从数据库发送回视图以便进行可视化呈现并不是一个好主意...
假设我们有以下视图和控制器,那么在从数据库返回数据以便在视图中可视化呈现时,我应该如何处理控制器和视图之间的交互呢? 视图:
我想要理解的是,在Swift UI中,控制器类应该如何控制或呈现UI?
比如遵循MVC模式,视图不应该知道模型的外观,因此将对象从数据库发送回视图以便进行可视化呈现并不是一个好主意...
假设我们有以下视图和控制器,那么在从数据库返回数据以便在视图中可视化呈现时,我应该如何处理控制器和视图之间的交互呢? 视图:
import SwiftUI
import Foundation
struct SwiftUIView: View {
var assignmentController = AssignmentController()
@State var assignmentName : String = ""
@State var notes : String = ""
var body: some View {
NavigationView {
VStack {
Form {
TextField("Assignment Name", text: $assignmentName)
TextField("Notes", text: $notes)
}
Button(action: {
self.assignmentController.retrieveFirstAssignment()
}) {
Text("Get The First Assignment !")
}
}
.navigationBarTitle("First Assignment")
}
}
}
控制器
var assignmentModel = AssignmentModel()
func retrieveFirstAssignment()
{
var firstAssignment : Assignment
firstAssignment=assignmentModel.retrieveFirstAssignment()
}
目前它只是找到了对象,但没有进行任何操作。
模型
模型中的一个对象由两个字符串字段组成:“assignmentName”和“notes”。
*我们假设任务模型有一个可工作的函数,可以从数据库检索一个任务以便在视图中展示它。