     /// - parameter buttons: Button titles
     /// - parameter buttonsStyles: Button styles
     /// - parameter enabledButtons: Enabled buttons
+    /// - parameter onCancel: Cancel button click closure. Default is `nil` - no action.
     /// - parameter completion: Closure that takes button title and button index as its parameters
-    open func showPickerAlert(title: String? = nil, message: String? = nil, buttons: [String], buttonsStyles: [UIAlertAction.Style]? = nil, enabledButtons: [Bool]? = nil, completion: @escaping ((String, Int) -> ())) {
+    open func showPickerAlert(title: String? = nil, message: String? = nil, buttons: [String], buttonsStyles: [UIAlertAction.Style]? = nil, enabledButtons: [Bool]? = nil, onCancel: ((UIAlertAction) -> Void)? = nil, completion: @escaping ((String, Int) -> ())) {
         
         performInMain {
             if let buttonsStyles = buttonsStyles, buttons.count != buttonsStyles.count { print("Invalid buttonsStyles count"); return }

    /// - parameter actionTitle: Action button title. Default is `Dismiss`.
    /// - parameter style: Action button style. Default is `.cancel`.
    /// - parameter cancelTitle: Cancel button title. Default is `nil` - no cancel button.
    /// - parameter handler: Action button click closure. Default is `nil` - no action.
    open func showErrorAlert(title: String? = nil, message: String? = nil, actionTitle: String = "Dismiss", style: UIAlertAction.Style = .cancel, cancelTitle: String? = nil, handler: ((UIAlertAction) -> Void)? = nil) {
        
        performInMain {
            let alertVC = AlertController(title: title, message: message, preferredStyle: .alert)
            alertVC.addAction(UIAlertAction(title: actionTitle, style: style, handler: handler))
            if let cancelTitle = cancelTitle {
                alertVC.addAction(UIAlertAction(title: cancelTitle, style: .default, handler: nil))
            }
            
            alertVC.present(animated: true)

                let text = alertVC.textFields?.first?.text ?? ""
                completion(text)
            }
            let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: onCancel)
            
            alertVC.addTextField { (textField) in
                textField.text = text
