UISplitViewController-Delegat in einem Singleton

8

Ich habe viel über UISplitView recherchiert und konnte keine Möglichkeit finden, eine geteilte Ansicht zu steuern, wenn der Master und das Detail eine sich ändernde Ansicht haben.

Dann habe ich einen Weg gefunden, es mit einer Singleton-Klasse zu verwalten, die der Delegierte ist.

Mein Problem ist, dass ich nicht sicher bin, ob es der richtige Weg ist. Ich bin besorgt über reusability und memory managment . Ich habe auch das Gefühl, dass es Apple-Richtlinien sind, Delegierte in Singletons zu machen.

Das habe ich (und es funktioniert tatsächlich):

%Vor%

Jetzt die Implementierung:

%Vor%

Dieser Code ist frei für jeden, der es in seinem Projekt für lebensfähig halten könnte:

Ich bin neu bei StackOverflow (obwohl ich seit ein paar Monaten ohne Account lauerte), also ist jede Kritik herzlich willkommen.

    
zamber 22.02.2012, 12:22
quelle

2 Antworten

2

IMHO, jedes Entwurfsmuster, Architektur, ist "gut", wenn es zum "Problem" passt, das Sie lösen müssen (und passt zu Ihren persönlichen Vorlieben für die Codeorganisation)

  • Was ist dein Problem?
  • Warum brauchen Sie dieses Objekt?
  • Könnte dieser Singleton UISplitViewDelegate dein sein? UIApplicationDelegate ? (Halten Sie es einfach; -)

weitere Diskussion = & gt;

Wenn Sie UIApplicationDelegate nicht als Unterobjekt erstellen, ist das ein Schema, das ich kürzlich verwendet habe, um meinen Code zu organisieren: Verwenden Sie Kategorien und Klassenerweiterungen

Beispiel:

Wenn meine ViewController-Klasse komplexe Aufgaben behandelt, deren Code in Gruppen aufgeteilt werden kann.
sagen wir:

  • Sound
  • Kerndaten
  • ortsabhängig,

Ich erstelle für jede eine Kategorie

  • UIViewController+soundManager
  • UIViewController+dataProvider
  • UIViewController+locationManager .

(in der gleichen Datei mit mehreren @interface @ Implementierung, oder in verschiedenen Dateien = & gt; ich benutze mehrere Dateien)

Dann schreibe ich mit jeder Kategorie eine Klassenerweiterung für Eigenschaften, die diese bestimmte Kategorie benötigt.

    
Vinzzz 08.01.2013, 07:39
quelle
0

Letztes Mal habe ich das gelöst, indem ich UISplitViewController abgeleitet und als seinen eigenen Delegierten verwendet habe.

    
Tricertops 23.07.2013 19:56
quelle