Ich habe 17 Knöpfe in meinem Xib. Und ich habe ihnen Tag-Werte von 1 bis 17 gesetzt.
Kann mir jemand sagen, wie man alle 17 Buttons mit einem einzigen Variablennamen in .h verbindet und einen bestimmten Button in .m mit seinem Tag-Wert erhält.
Vielen Dank
Antworten:
1 für die Antwort № 1Ich habe das gerade getestet, und ich weiß es, wenn Sie auswählenalle Ihre Schaltflächen in Storyboards und ziehen Sie sie in den entsprechenden Controller. In einem Assistenten-Editor können Sie eine Sammlung von Ausgängen erstellen, die alle Schaltflächen darstellen. Der resultierende Code war:
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;
1 für die Antwort № 2
Nein, das ist nach meiner Erfahrung nicht möglich. IBOutlet, d. H. Interface Builder Outlet, bezieht sich immer auf eine einzelne Verbindung zwischen einer Schnittstellenkomponente (wie Schaltfläche) und einer Variablen in der Schnittstelle (wie IBOutlet UIButton * myButton). Diese Eins-zu-Eins-Beziehung.
1 für die Antwort № 3
Es muss ein sein IBOutlet
Sie müssen also alle 17 Schaltflächen erstellen. Verbinden Sie die Schaltflächen einzeln mit den Ausgängen, und Sie können sie dann in einem Array in Ihrem Initializer ablegen, wenn Sie sie in einem Array benötigen.
Sie können auf dem sparen IBAction
Methoden, obwohl: eine Methode so machen
-(IBAction)buttonClicked:(id)sender {
}
Sie können diese Methode mit allen Schaltflächen verbinden und das Tag des anzeigen (id)sender
um zu entscheiden, welche Schaltfläche Ihre Aktion aufgerufen hat.
0 für die Antwort № 4
Sie können der 17-Taste keine Referenz zuweisen, aber Sie können 17 Tasten eine Methode zuweisen, wie @dasblinkenlight
Sie müssen nur das einstellen IBAction
Methode zu allen angeklickten Ereignissen Über den Tag-Wert können Sie auf die gewünschte Schaltfläche zugreifen
-(IBAction)buttonClicked:(id)sender {
int j = [sender tag];
NSLog(@"Clicked Button %i", j);
}