Erstens ist der Doppelpunkt Teil des Selektors: @selector(changeIconState:)
.
Zweitens sind Aktionen Methoden, die bestimmte Parameter verwenden - Sie können keine Methode als Aktion verwenden. Normalerweise sehen Aktionen folgendermaßen aus:
%Vor%Dabei ist Absender ein Zeiger auf das Objekt, das die Aktion sendet. Wenn Sie in diesem Code auf diesenIconButton tippen, wird dieser Button als Absender übergeben.
Wenn Sie die Zelle, zu der die Schaltfläche gehört, möchten, verwenden Sie button.superview.superview
, aber ich denke nicht, dass Sie die Argumente der Zielmethoden für Steuerelementereignisse ändern können.
Einer der häufigsten Gründe für das Senden von Daten über einen Selektor ist, wenn Sie eine benutzerdefinierte Schaltfläche in einer UITableViewCell verwenden.
Matthias Bauch hat ein ausgezeichnetes Codebeispiel zur Verfügung gestellt, um herauszufinden, wie man den indexPath durch Nachschlagen in der Zelle des Absenders in einem verwandten Post erhält. Siehe Ссылка .
Tags und Links objective-c ios arguments cocoa-touch selector