所以,我是 VIPER 的新手,并使用该架构构建了简单的 http 请求演示应用程序。我遇到了一个 UI 没有更新的问题,尽管视图中的方法仍然被调用,因为我已经检查了 print("test") 是否已执行并显示在调试控制台上。这是相关代码:
看法 :
private func getAllContacts(){
self.contacts = []
self.hud.show(in: self.view)
self.presenter?.fetchListContacts()
print("asd")
}
主持人 :
func fetchListContacts(){
print("sdf")
interactor?.getContacts()
}
交互者:
func getContacts(){
print("123")
var contacts : [DetailContact] = []
contacts = \\APICALL
self.presenter?.listContactFetchSuccess(contacts)
}
Baxk 到 PResenter :
func listContactFetchSuccess(_ contacts: [DetailContact]) {
print("gxx")
view?.fetchSucceed(contacts: contacts)
}
返回查看:
func fetchSucceed(contacts: [DetailContact]) {
self.contacts = contacts
self.hud.dismiss()
self.contactTableView.reloadData()
print("test")
}
我的路由器:
static func createListContactModule() -> ListViewController {
let view = mainstoryboard.instantiateViewController(withIdentifier: "ListViewController") as! ListViewController
var presenter: ViewToPresenterListProtocol & InteractorToPresenterListProtocol = ListContactPresenter()
var interactor: PresenterToInteractorListProtocol = ListContactInteractor()
let router:PresenterToRouterListProtocol = ListContactRouter()
view.presenter = presenter
presenter.view = view
presenter.router = router
presenter.interactor = interactor
interactor.presenter = presenter
return view
}