diff --git a/Helper/AlertProtocol/AlertProtocol.swift b/Helper/AlertProtocol/AlertProtocol.swift new file mode 100644 index 0000000..a28ce20 --- /dev/null +++ b/Helper/AlertProtocol/AlertProtocol.swift @@ -0,0 +1,44 @@ +// +// AlertProtocol.swift +// VariousManagerDemoApp +// +// Created by JungpyoHong on 4/21/21. +// +import UIKit + +enum AlertButton: String { + case ok + case cancel + case delete + case settings +} + +protocol AlertProtocol: UIViewController { + func showAlert(title: String, message: String, buttons: [AlertButton], completion: @escaping (UIAlertController, AlertButton) -> Void) +} + +extension AlertProtocol { + + func showAlert(title: String, message: String, buttons: [AlertButton] = [.ok], completion: @escaping (UIAlertController, AlertButton) -> Void) { + + let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) + + buttons.forEach { button in + let action = UIAlertAction(title: button.rawValue.capitalized, style: button == .delete ? .destructive : .default) { [alert, button] _ in + completion(alert, button) + } + alert.addAction(action) + } + self.present(alert, animated: true, completion: nil) + } +} + +protocol CellReusable { + static var identifier: String { get } +} + +extension CellReusable { + static var identifier: String { + String(describing: self) + } +}