如何在Swift中的“模型”组件中设置委托视图控制器类

时间:2015-04-06 14:12:26

标签: ios swift model-view-controller

我在Swift中有一个视图控制器类,其中视图是一个单独的类,我通过插座将它连接到视图控制器。这允许我在didset方法中将视图控制器类设置为视图的委托:

@IBOutlet theView: ViewClass! {
    didSet {
        theView.delegate = self;
    }
}

但是我也尝试将我的大多数应用程序后端逻辑分成一个单独的类(MVC中的模型),我在我的视图控制器中创建了这个:

let logic = Logic()

但我没有办法让Logic做一些后台工作并告知我的视图控制器。同样,我希望将视图控制器作为委托类传递给Logic。最好的地方在哪里?如果我尝试在MyViewController中执行此操作,我会收到一个奇怪的“无效参数类型列表”错误:

let logic = Logic(self)

可能是因为self的初始化排序?这样做的正确位置/最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

我建议你看一下斯坦福大学的这门课程并看看MVC讲座:https://itunes.apple.com/gb/course/developing-ios-8-apps-swift/id961180099

他们建议使用NSNotifcation让控制器知道模型中的更改,并仅使用委托来通知视图中的更改。请详细了解NSNotifcationhttp://www.andrewcbancroft.com/2014/10/08/fundamentals-of-nsnotificationcenter-in-swift/