2009-08-12 13 views
1

Für meine Anwendung habe ich eine UIViewController und etwa 8 UIView s. Die Ansichten sind alle Eigenschaften des View-Controllers, die über den Interface Builder (IBOutlet) verknüpft sind. Wenn also der View-Controller geladen wird, werden auch alle Ansichten geladen, und ich habe eingebaute Methoden, um zwischen den verschiedenen Ansichten hin und her zu wechseln.Sind alle Ansichten, die mit einem View-Controller verknüpft sind, eine schlechte Übung?

Ist es schlecht, wenn alle mit einem View-Controller verknüpft sind - sollte jeder View seinen eigenen View-Controller haben? Da sie alle mit einem verknüpft sind, gehe ich davon aus, dass sie sich alle gleichzeitig im Speicher befinden und niemals freigegeben werden, da der View-Controller selbst nie freigegeben wird.

Was ist die Standardpraxis dafür?

Antwort

4

Wenn Sie eine Reihe von Ansichten haben, die immer gleichzeitig auf dem Bildschirm angezeigt werden, sollten sie von einem UIViewController gesteuert werden.

Wenn Sie mehrere Ansichten haben, die zwischen der vollständigen Steuerung des Bildschirms wechseln, sollte jede Ansicht ihre eigene UIViewController haben.

Wenn Sie eine einzelne Ansicht haben, die immer auf dem Bildschirm angezeigt wird und einen Teil des Bildschirms an eine andere Ansicht delegiert, die sich ändern kann, sollten Sie eine UIViewController für die Hauptansicht sowie eine UIViewController pro Unteransicht verwalten.

(Jedes Mal, wenn eine Ansicht, die manchmal auf dem Bildschirm sein kann und manchmal off-screen werden, sollten Sie vielleicht eine UIViewController werden unter Verwendung seiner Lebensdauer zu verwalten.)

+0

Ahm .. Wie genau würden Sie ein verwenden separate UIViewController, um eine _subview_ zu verwalten? Aus der UIViewController-Dokumentation: "Sie verwenden jede Instanz von UIViewController zum Verwalten einer Vollbildansicht." –

+0

Es gibt viele Unterklassen von 'UIViewController', die keine Vollbildansichten verwalten - wie' UITabBarController'. Es kann weiterhin die Lebensdauer einer Ansicht verwalten, selbst wenn diese Ansicht nicht im Vollbildmodus angezeigt wird. –

+0

Großartige Erklärung John, danke! –

Verwandte Themen