Aktivitätsanzeige in vielen VC verwenden, ohne Code zu duplizieren swift

Ich habe zweiViewControllers (A und B) in schnellen IOS. Sowohl A als auch B laden Daten aus dem Internet (separat). Ich möchte @ anzeigactivityIndicator beim Laden. Ich weiß, dass ich es schlecht machen kann, indem ich es einmal in jeder VC wie folgt deklariere:

ViewController A

var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()

func activityIndicatorBegin() {
    activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0,0,50,50))
    activityIndicator.center = self.view.center
    activityIndicator.hidesWhenStopped = true
    activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
    view.addSubview(activityIndicator)
    activityIndicator.startAnimating()
    disableUserInteraction()

    greyView = UIView()
    greyView.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
    greyView.backgroundColor = UIColor.blackColor()
    greyView.alpha = 0.5
    self.view.addSubview(greyView)
}

func activityIndicatorEnd() {
    self.activityIndicator.stopAnimating()
    enableUserInteraction()
    self.greyView.removeFromSuperview()
}

und machen Sie dasselbe für ViewController B und rufen Sie die in ViewController B deklarierten Funktionen activityIndicatorBegin und activityIndicatorEnd auf. Ich möchte den Code jedoch übersichtlicher gestalten. Wie könnte es gemacht werden? Ich versuche in diesen Tagen, den Code sauberer zu machen.

Vielen Dank

--AKTUALISIEREN-

Ich würde so etwas wie den folgenden Code machen. Aber das tut es nicht, weil ich keine Variablen in den Erweiterungen deklarieren kann

    var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()

extension UIViewController {
    func activityIndicatorBegin() {
    activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0,0,50,50))
    activityIndicator.center = self.view.center
    activityIndicator.hidesWhenStopped = true
    activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
    view.addSubview(activityIndicator)
    activityIndicator.startAnimating()
    disableUserInteraction()

    greyView = UIView()
    greyView.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
    greyView.backgroundColor = UIColor.blackColor()
    greyView.alpha = 0.5
    self.view.addSubview(greyView)
}

func activityIndicatorEnd() {
    self.activityIndicator.stopAnimating()
    enableUserInteraction()
    self.greyView.removeFromSuperview()
    }
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage