             vibrancyView.effect = vibrancyEffect
         }
     }
+    
+    open var customButtonText: String? {
+        didSet {
+            if let text = customButtonText {
+                fakeButton.text = text
+            } else {
+                fakeButton.text = defaultFakeButtonTitle
+            }
+        }
+    }
+
+    open weak var delegate: LoadingBannerDelegate?
     
     
     // MARK: - Internal properties

        }
    }
    
    func toggleError(_ message: String?) {
        if let message = message {
            errorMessage = message
            errorLabel.text = message
            errorStackView.isHidden = false
            loadingStackView.isHidden = true
        } else {
            errorMessage = nil
            loadingStackView.isHidden = false
            errorStackView.isHidden = true
        }
    }
    
    func toggleSpinner(toShowing: Bool) {
        if toShowing {
            spinner.startAnimating()

        visualEffectView.contentView.addSubview(vibrancyView)
        setupFullSize(vibrancyView)
        
        vibrancyView.contentView.addSubview(stackView)
        setupFullHeight(stackView)
        stackView.centerXAnchor.constraint(equalTo: vibrancyView.centerXAnchor).isActive = true
        stackView.spacing = 4.0
        
        stackView.addArrangedSubview(spinner)
        
        messageLabel.text = defaultText
        if #available(iOSApplicationExtension 10.0, *) {
            messageLabel.adjustsFontForContentSizeCategory = true
        }
        messageLabel.font = UIFont.preferredFont(forTextStyle: .caption1)
        stackView.addArrangedSubview(messageLabel)
        
        fakeButton.text = defaultFakeButtonTitle
        fakeButton.font = UIFont.preferredFont(forTextStyle: .caption1)
        fakeButton.textAlignment = .center
        fakeButton.translatesAutoresizingMaskIntoConstraints = false
        fakeButton.widthAnchor.constraint(equalTo: fakeButton.heightAnchor).isActive = true
        stackView.addArrangedSubview(fakeButton)
        
        let button = UIButton()
        addSubview(button)
        setupFullSize(button)
        button.addTarget(self, action: #selector(LoadingBanner.bannerTapped), for: .touchUpInside)
        
        updateColors()
    }
