Suche…
Bemerkungen
IBOutlet ist weder ein reserviertes Wort noch eine Variable oder Klasse. Es ist syntaktischer Zucker für den Interface Builder. Nachdem der Objective-C-Quellcode vorverarbeitet wurde, wird er zu nichts aufgelöst.
In Swift wird es als Null aufgelöst.
Es wird in <UIKit/UINibDeclarations.h>
als <UIKit/UINibDeclarations.h>
#ifndef IBOutlet
#define IBOutlet
#endif
Verwenden eines IBOutlets in einem UI-Element
Im Allgemeinen werden IBOutlets verwendet, um ein Benutzeroberflächenobjekt mit einem anderen Objekt, in diesem Fall einem UIViewController, zu verbinden. Die Verbindung dient dazu, dass das Objekt programmgesteuert auf meinen Code oder meine Ereignisse wirkt. Dies kann einfach durch Verwenden des Assistenten aus einem Storyboard und durch Klicken mit der rechten Maustaste vom Element in den .h-Eigenschaftsbereich des View-Controllers erfolgen. Dies kann jedoch auch programmgesteuert und manuell durch Verbinden des IBOutlet-Codes mit der Registerkarte "Verbindungen" des Objekts erfolgen die Werkzeugleiste rechts. Hier ist ein objektives Beispiel für einen UIViewController mit Etikettenauslass:
//ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
//This is the declaration of the outlet
@property (nonatomic, weak) IBOutlet UILabel *myLabel;
@end
//ViewController.m
#import "ViewController.h"
@implementation ViewController
@synthesize myLabel;
-(void) viewDidLoad {
[super viewDidLoad];
//Editing the properties of the outlet
myLabel.text = @"TextHere";
}
@end
Und schnell:
import UIKit
class ViewController: UIViewController {
//This is the declaration of the outlet
@IBOutlet weak var myLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
//Editing the properties of the outlet
myLabel.text = "TextHere"
}
}
Die Verbindung zwischen dem Storyboard-Objekt und dem programmierten Objekt kann als verbunden überprüft werden, wenn der Punkt links von der Deklaration des Auslasses in der .h gefüllt ist. Ein leerer Kreis implizierte eine unvollständige Verbindung.