// Benutzerdefinierte Klasse für UIAlertView
//MARK:- MODULE
import Foundation
import UIKit
//MARK:- KLASSE
class Alert : NSObject{
static let shared = Alert()
var okAction : AlertSuccess?
typealias AlertSuccess = (()->())?
var alert: UIAlertController?
/** anzeigen */
public func show(title : String?, message : String?, viewController : UIViewController?, okAction : AlertSuccess = nil) {
let version : NSString = UIDevice.current.systemVersion as NSString
if version.doubleValue >= 8 {
alert = UIAlertController(title: title, message: message, preferredStyle:.alert)
alert?.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action: UIAlertAction) in
if let okAction = okAction {
okAction()
}
}))
viewController?.present(alert ?? UIAlertController(), animated:true, completion:nil);
}
}
/** showWithCancelAndOk */
public func showWithCancelAndOk(title : String, okTitle : String, cancelTitle : String, message : String, viewController : UIViewController?, okAction : AlertSuccess = nil, cancelAction : AlertSuccess = nil) {
let version:NSString = UIDevice.current.systemVersion as NSString;
if version.doubleValue >= 8 {
alert = UIAlertController(title: title, message: message, preferredStyle:.alert)
alert?.addAction(UIAlertAction(title: cancelTitle, style: .default, handler: { (action: UIAlertAction) in
if let cancelAction = cancelAction {
cancelAction()
}
}))
alert?.addAction(UIAlertAction(title: okTitle, style: .default, handler: { (action: UIAlertAction) in
if let okAction = okAction {
okAction()
}
}))
viewController?.present(alert!, animated:true, completion:nil);
}
}
/** showWithTimer */
public func showWithTimer(message : String?, viewController : UIViewController?) {
let version : NSString = UIDevice.current.systemVersion as NSString
if version.doubleValue >= 8 {
alert = UIAlertController(title: "", message: message, preferredStyle:.alert)
viewController?.present(alert ?? UIAlertController(), animated:true, completion:nil)
let when = DispatchTime.now() + 1
DispatchQueue.main.asyncAfter(deadline: when){
self.alert?.dismiss(animated: true, completion: nil)
}
}
}
}
Verwendung:-
Alert.shared.show(title: "Keine Internetverbindung", message: "Die Internetverbindung scheint offline zu sein.", viewController: self) //ohne ok Aktion
Alert.shared.show(title: "Keine Internetverbindung", message: "Die Internetverbindung scheint offline zu sein.", viewController: self, okAction: {
//ok Aktion
}) // mit ok Aktion
Alert.shared.show(title: "Keine Internetverbindung", message: "Die Internetverbindung scheint offline zu sein.", viewController: self, okAction: {
//ok Aktion
}, cancelAction: {
//Abbrechen Aktion
}) //mit Abbrechen und ok Aktion
Alert.shared.showWithTimer(message: "Dies ist ein Alarm mit Timer", viewController: self) //mit Timer