Frage

eine meiner Ansicht-Controller verfügt über mehrere UISwitches, und ich möchte eine andere Ansicht-Controller in der Lage sein, die Werte der UISwitches für If / und Aussagen zu gelangen. Wie kann ich tun dies in Objective-c?

War es hilfreich?

Lösung

Sie wollen wahrscheinlich nicht, das zu tun. Wenn Sie ein zweites Viewcontroller haben unterschiedliche Verhalten wollen basierend auf Schalter in der ersten geworfen, sollten Sie nur binden die Schalter auf Benutzereinstellungen, die Sie überall in der App lesen kann.

http: // icodeblog. com / 2008/10/03 / iPhone-Programmierung-tutorial-savingretrieving-data-using-NSUserDefaults /

Andere Tipps

Dies ist eine schlechte Idee, da es eine unnötige Abhängigkeit zwischen dem View-Controller schaffen würde.

Wenn Sie immer noch, es tun mögen, geben Sie einfach einen Verweis der ersten View-Controller mit den Schaltern auf die zweiten View-Controller. Dann, gerade in Ihrem zweiten View-Controller Zugriff auf die entsprechende UISwitch der on Eigenschaft.

Doch statt diesen Weg gehen, empfehle ich dringend, dass Sie eine benutzerdefinierte Klasse erstellen, die boolean Zustand jedes UISwitch zu halten. Eine Instanz dieser Klasse könnte entweder ein Singleton sein, oder in der Anwendung Delegaten enthalten. Sehen Sie diese Antwort wie es mit den beiden Ansätzen zu tun.

Eine benutzerdefinierte Klasse ist besser, weil ein UISwitch ist nur eine Möglichkeit, eine Eigenschaft in Ihrem Datenmodell darzustellen. Und wenn morgen ersetzt man die UISwitch mit einem anderen Phantasie Kontrolle sollte die zweite View-Controller noch an die Arbeit fortzusetzen. Beide View-Controller verfügen über einen Verweis auf ein Objekt dieser benutzerdefinierten Klasse. Jedes Mal, wenn es eine Änderung gibt, den ersten Controller aktualisiert diese Aufgabe.

Die Klasse Schnittstelle so etwas wie dies sein könnte:

@interface DataValues : NSObject {
    BOOL first;
    BOOL second;
    BOOL third;
}

@property BOOL first;
@property BOOL second;
@property BOOL third;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top