1
通常,我编写这个函数来从viewController初始化我的演示者。但我想使用init()来做这件事。我能做什么?哪个是初始化MVP模式的演示者的最好方法(swift)
的ViewController:
class ViewController: UIViewController {
private let viewPresenter = viewPresenter()
override func viewDidLoad() {
self.viewPresenter.attachView(controller: self)
}
@IBAction func faceBookButtonTapped(sender: UIButton) {
self.viewPresenter.showLoginWindow()
}
}
ViewPresenter:
class ViewPresenter {
var controller: ViewController?
func attachView(controller: ViewController) {
self.controller = controller
}
}
所以,如果我有这样的初始化在我的演讲:
let controller: ViewController?
init (controller:ViewController) {
self.controller = controller
}
并尝试初始化像这样的viewController:
private let viewPresenter = ViewPresenter(controller: self)
的Xcode给我这个错误: 无法将类型的价值 '(NSObject的) - >() - >视图控制器' 预期参数类型 '的ViewController'