Ich habe 30 Schaltflächen in einer Ansicht im Interface Builder. Jeder hat ein anderes Tag zwischen 100001 und 100030. Ich habe es einfach gefunden, für jede Taste die gleiche Aktion zu verwenden, indem ich bei jedem Drücken die Markierung für jede Taste weitergebe und Code benutze, um zu entscheiden, welche Ebene geladen werden soll.
Ich möchte alle Schaltflächen mit einem einzelnen IBOutlet verbinden, aber jede Schaltfläche muss ein anderes Bild basierend auf den gespeicherten Daten des Benutzers und dem Tag der Schaltfläche laden.
Wie mache ich das?
Verwenden Sie IBOutletCollection, um Ihrem View-Controller eine outlet-Sammlung hinzuzufügen, beispielsweise:
%Vor% Damit können Sie alle Ihre Tasten an eine Steckdose anschließen. Die Eigenschaft buttons
wird ein NSMutableSet sein, das alle Ihre Schaltflächen enthält. Mit der Eigenschaft tag
der Schaltfläche können Sie weiterhin einzelne Schaltflächen identifizieren. Dies ist praktisch, wenn Sie alle Ihre Schaltflächen durchlaufen möchten, um vielleicht das Bild jeder Schaltfläche einzurichten:
(Sie müssen die Methode -imageForTag:
bereitstellen, um das richtige Bild für ein bestimmtes Tag bereitzustellen oder eine andere Möglichkeit zum Zuordnen von Tags zu Bildern zu finden.)
Wenn Sie den Bereich der Tag-Werte für alle Ihre Schaltflächen bereits kennen und wenn Sie dafür gesorgt haben, dass die Tags in der Ansicht mit allen Schaltflächen eindeutig sind, können Sie auch jede Schaltfläche einzeln mit% abrufen. Code%. Dies ist wahrscheinlich nicht so schnell wie die Erstellung der gesamten Schaltflächen, wie Sie es bei der oben beschriebenen Outlet-Sammlung getan haben, aber es bedeutet, dass eine Sache weniger zu pflegen ist.
Befolgen Sie diese Schritte, um ein Array von Steckdosen zu erstellen und verbinden Sie es mit IB-Elementen:
-
%Vor%
Tags und Links objective-c ios xcode iboutlet iboutletcollection