Create AlertProtocol.swift

This commit is contained in:
Jungpyo Hong 2021-05-05 12:26:52 -05:00 committed by GitHub
parent 04d379ea50
commit 3d28a95b89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)
}
}