2016-04-18 14 views
0

Ich versuche, eine Klasse MyViewControllerDesign.swift zu erstellen, die alle Design-Einstellung, wie Konfiguration, Änderung ... behandeln und die von überall aufgerufen werden können.Beste Methode zum Ändern von UIView Outside UIViewController

enter image description here

Was ist der beste Weg eine UIView zu verändern, dass in einem MyUIViewController erstellt, aus einer Funktion von MyViewControllerDesign?

1 - Sollte ich übergeben Kontext von MyUIViewController zu hideMyView Funktion?

func hideMyView(context: MyUIViewController){ 
    context.myView.hidden = true 
} 

2 - Oder sollte ich den Blick auf hideMyView Funktion passieren ?

func hideMyView(myView: UIView){ 
    myView.hidden = true 
} 

... aber ich habe es von startTasks passieren ...

func startTasks(myView: UIView){ 
    ... 
    myViewControllerDesign.hideMyView(myView) 
    ... 
} 

3 - Oder sollte ich hideMyView Funktion auf MyUIViewController lassen?

Was ist der beste Weg? Gibt es ein Entwurfsmuster, um diesen Fall zu behandeln?

Antwort

0

Es wäre sinnvoll, wenn der Design-Controller einen Verweis auf die von ihm verwalteten Ansichten und/oder Teilansichten enthält - Sie können dies tun, wenn Sie MyViewControllerDesign in Ihrem View-Controller instanziieren. In ähnlicher Weise kann Ihr Objekt BackgroundTasks einen Verweis auf den Design-Controller behalten und relevante Methoden nach Bedarf aufrufen.

Auf diese Weise befindet sich der View Controller immer noch im Mittelpunkt des Prozesses und verbindet die Modellschicht mit der Ansichtsebene.

Verwandte Themen