@buoge
2017-09-30T12:00:50.000000Z
字数 962
阅读 814
程序构建
if (isSuccess) {
let successMsg = isFromCart ? "修改购物车成功!" : "添加到购物车成功!"
if (isFromCart) {
let dissmissConfirmClosure = { [weak self]() -> Void in
self?.dismissModalVC()
self?.loadingVCInParentVC?.dismissLoading(loadingType: LoadingType.Small)
SVProgressHUD.showSuccess(withStatus: successMsg)
}
cartListDelegate?.reloadDataAfterSkuChange(dissmissConfirmClosure)
}else{
loadingVCInParentVC?.dismissLoading(loadingType: LoadingType.Small)
SVProgressHUD.showSuccess(withStatus: successMsg)
NavBarView.sendCartCountChangedNotification(amount)
if (buyActionCartView?.bottomMenuConfirmMode ?? false) {
confirmContainer?.hiddeView()
}
}
}
上述代码 CartListDelegate 是在弹层中触发修改后,通知购物车列表刷新,第一版实现的方式是delegate,但是使用CartListDelegate target-action 的方式在之前已有一个购物车页面的时候还算ok,后续,购物车列表在首页也要出现,现在他们就不是1对1的模式了,编程了2对一,此时使用delegate 就不使用了,
此时最合适的方式是通知,通过通知解耦,两个业务实体之间的关联,降低复杂度