diff --git a/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/View/HankkiDetailViewController.swift b/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/View/HankkiDetailViewController.swift index 9be9f4ac..f1482072 100644 --- a/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/View/HankkiDetailViewController.swift +++ b/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/View/HankkiDetailViewController.swift @@ -185,8 +185,12 @@ private extension HankkiDetailViewController { primaryButtonText: StringLiterals.Alert.check) } - viewModel.dismiss = { - self.navigationController?.popViewController(animated: false) + viewModel.dismiss = { [weak self] in + self?.navigationController?.popViewController(animated: false) + } + + viewModel.handleDeletedHankki = { [weak self] in + self?.showBlackToast(message: StringLiterals.Toast.deleteAlready) } } diff --git a/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/ViewModel/HankkiDetailViewModel.swift b/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/ViewModel/HankkiDetailViewModel.swift index a3d1b8c7..3b5ea358 100644 --- a/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/ViewModel/HankkiDetailViewModel.swift +++ b/Hankkijogbo/Hankkijogbo/Present/HankkiDetail/ViewModel/HankkiDetailViewModel.swift @@ -8,7 +8,6 @@ import Foundation import Moya -import UIKit final class HankkiDetailViewModel { @@ -34,6 +33,8 @@ final class HankkiDetailViewModel { var setHankkiDetailData: (() -> Void)? var showAlert: ((String) -> Void)? var dismiss: (() -> Void)? + var handleMapError: (() -> Void)? + var handleDeletedHankki: (() -> Void)? init(hankkiId: Int) { self.hankkiId = hankkiId @@ -47,8 +48,8 @@ extension HankkiDetailViewModel { guard let self = self else { return } switch result { case .notFound: - UIApplication.showBlackToast(message: StringLiterals.Toast.deleteAlready) - self.dismiss?() + handleDeletedHankki?() + dismiss?() default: result.handleNetworkResult(delegate: self.delegate) { response in self.hankkiDetailData = response.data @@ -88,10 +89,8 @@ private extension HankkiDetailViewModel { guard let detailData = hankkiDetailData else { return } NetworkService.shared.naverMapService.getHankkiAddress(latitude: detailData.latitude, longitude: detailData.longitude) { result in switch result { - case .badRequest: - UIApplication.showBlackToast(message: StringLiterals.Toast.serverError) - case .serverError: - UIApplication.showBlackToast(message: StringLiterals.Toast.serverError) + case .badRequest, .serverError: + self.handleMapError?() default: result.handleNetworkResult { response in guard let data = response.results.first,