Kann ich mehrere Objekte mit verschiedenen Tags mit demselben IBOutlet verbinden?

7

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?

    
Scott Walker 19.12.2011, 16:23
quelle

2 Antworten

23

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:

%Vor%

(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.

    
Caleb 19.12.2011, 16:39
quelle
0

Befolgen Sie diese Schritte, um ein Array von Steckdosen zu erstellen und verbinden Sie es mit IB-Elementen:

  • Erstellen Sie ein Array von IBOutlets
  • Fügen Sie mehrere UIElements (Ansichten) in Ihrer Storyboard ViewController-Schnittstelle hinzu
  • Wählen Sie ViewController (im Storyboard) und öffnen Sie den Verbindungsinspektor
  • Es gibt die Option 'Outlet Collections' im Connection Inspector (Sie sehen dort eine Reihe von Outlets)
  • Verbinden Sie if mit Ihren Schnittstellenelementen

-

%Vor%

    
Krunal 18.10.2017 14:06
quelle