Frage

Was ist der Zweck IBAction und IBOutlet der Verwendung in Objective-C-Kodierung für das iPhone, macht es einen Unterschied, ob ich sie nicht benutzen?

War es hilfreich?

Lösung

IBAction und IBOutlet sind Makros definiert Variablen und Methoden zu bezeichnen, die im Interface Builder bezeichnet werden können.

IBAction beschließt, void und IBOutlet löst nichts, aber sie bedeuten zu Xcode und Interface Builder, dass diese Variablen und Methoden können im Interface Builder verwendet werden UI-Elemente, um Ihren Code zu verbinden.

Wenn du gehst nicht an alle Interface Builder verwendet, dann müssen Sie sich nicht in Ihrem Code, aber wenn du gehst, es zu benutzen, dann müssen Sie IBAction für Methoden angeben, die verwendet werden, in IB und IBOutlet für Objekte, die in IB verwendet werden.

Andere Tipps

Der traditionelle Weg zur Fahne eines Verfahren, so dass es im Interface Builder angezeigt wird, und Sie können eine Verbindung zu ihm ziehen, wurden die Methode Rückgabetyp IBAction zu machen. Wenn Sie jedoch Ihre Methode void machen, statt (IBAction # define'd leer zu sein), und bietet ein (id) Argument ist das Verfahren noch sichtbar. Dies sorgt für zusätzliche Flexibilität, al

Alle drei davon sind sichtbar von Interface Builder:

-(void) someMethod1:(id) sender; 
-(IBAction) someMethod2; 
-(IBAction) someMethod3:(id) sender;

Siehe Apples Interface Builder Benutzerhandbuch für Einzelheiten, insbesondere den Abschnitt mit dem Titel Xcode Integration.

Sie müssen IBOutlet und IBAction verwenden, wenn Sie Interface Builder verwenden (daher der IB-Präfix) für Ihre GUI-Komponenten. IBOutlet benötigt wird, um Eigenschaften in Ihrer Anwendung mit Komponenten in IB zu assoziieren, und IBAction verwendet, um Ihren Methoden zu ermöglichen, mit Aktionen in IB in Verbindung gebracht werden.

Angenommen, Sie auf eine Schaltfläche und Etikett in IB zu definieren.

: dynamisch den Wert des Etiketts verändert, indem Sie die Taste drückt, werden Sie eine Aktion und Eigentum in Ihrer Anwendung ähnlich definieren
UILabel IBOutlet *myLabel;
-(IBAction) pushme;

Dann in IB würden Sie myLabel mit dem Etikett verbinden und die pushme Methode mit der Taste verbinden. Sie müssen IBAction und IBOutlet für diese Verbindungen in IB existieren.

Interface Builder nutzt sie, um zu bestimmen, welche Elemente und Nachrichten können bis zu den Schnittstellensteuerungen ‚verdrahtet‘ werden Sie in Ihrem Fenster / Ansicht verwenden.

IBOutlet und IBAction sind rein dort als Marker, die Interface Builder sucht, wenn es Ihren Code zur Entwurfszeit analysiert, sie haben nicht auf den Code beeinflussen durch den Compiler erzeugt wird.

Ein Outlet ist ein Link von Code UI. Wenn Sie ein UI-Element angezeigt oder ausgeblendet, wenn Sie den Text eines Textfeld bekommen oder aktivieren oder ein Element deaktivieren (oder hundert andere Dinge), müssen Sie einen Ausgang dieses Objekts in den Quellen definieren und diese Steckdose verbinden durch das „Schnittstellenobjekt“ auf das Oberflächenelement. Danach können Sie die Steckdose verwenden wie jede andere Variable in der Codierung.

IBAction - eine spezielle Methode ausgelöst durch User-Interface-Objekte. Interface Builder erkennt sie.

@interface Controller
{
  IBOutlet id textField; // links to TextField UI object
}

- (IBAction)doAction:(id)sender; // e.g. called when button pushed

Für weitere Informationen lesen Sie bitte Apple-Docs

Ran das Diagramm in während bei Schlüssel-Wert-Codierung suchen, dachte, es jemand helfen könnte. Es hilft mit Verständnis dessen, was IBOutlet ist.

Mit dem am Fluss sucht, konnte man sehen, dass IBOutlets ist nur dort mit einem Steuerelementnamen in der Nib-Datei mit dem Eigenschaftsnamen entspricht.

IBAction und IBOutlets werden verwendet, um Ihre Schnittstelle im Interface Builder mit dem Controller gemacht zu anschließen. Wenn Sie nicht Interface Builder verwenden und bauen Sie Ihre Schnittstelle vollständig in Code, könnten Sie ein Programm machen, ohne sie zu verwenden. Aber in Wirklichkeit die meisten von uns Interface Builder verwenden, wenn Sie in Ihrer Schnittstelle eine gewisse Interaktivität in Gang bringen wollen, müssen Sie IBActions und IBOutlets verwenden.

Wenn Sie Interface Builder verwenden, können Sie Connections Inspector einzurichten, die Ereignisse mit Event-Handler, die Ereignishandler verwenden sollen die Funktionen sein, die das IBAction Modifier. Eine Ansicht kann mit der Referenz für die gleiche Art und mit dem IBOutlet Modifikator verknüpft werden.

IBOutlet

  • Es ist eine Eigenschaft .
  • Wenn die Spitze (IB)-Datei geladen wird, wird es Teil von eingekapselten Daten, die eine Instanzvariable verbinden.
  • Jede Verbindung ist aus dem Archiv entfernt und wieder hergestellt.

IBAction

  • Attribute gibt an, dass das Verfahren eine Aktion, die Sie von Ihrem Storyboard im Interface Builder verbinden können.

@ - Dynamische Muster IB - Interface Builder

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top