练习 MVC 模式并希望使用故事板将视图与视图控制器分开。
在 main.storyboard 我有一个视图控制器,并且在 rootview 中有一些 uilabels。
为了将视图代码与视图控制器分开,我从视图控制器场景中选择了视图,创建了 FruitDetailView 类并将其子类化到故事板身份检查器中。
并将 UILabels 连接到 FruitDetailView 类。
class FruitDetailView: UIView {
@IBOutlet weak var name: UILabel!
@IBOutlet weak var type: UILabel!
override init(frame: CGRect) {
super.init(frame: frame)
name.text = ""
type.text = ""
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func update(_ detail: Fruit) {
name.text = detail.name
type.text = detail.type
}
}
在 viewController 中,创建了 FruitDetailView() 实例。并且在 loadview() 方法中,将fruitDetailView 实例分配给视图属性。
class FruitDetailViewController: UIViewController {
private let fruitDetailView = FruitDetailViewController()
var fruit = Fruit()
override func loadView() {
view = fruitDetailView
fruitDetailView.update(fruit)
}
}
但是当我运行应用程序时,应用程序崩溃并出现错误。
我怎样才能解决这个问题?