Zoeken…
Opmerkingen
IBOutlet is noch een gereserveerd woord, noch een variabele of klasse, het is syntactische suiker voor Interface Builder. Nadat de Objective-C-broncode vooraf is verwerkt, wordt deze tot niets opgelost.
In Swift is het opgelost als nul.
Het wordt in <UIKit/UINibDeclarations.h>
verklaard als
#ifndef IBOutlet
#define IBOutlet
#endif
Een IBOutlet gebruiken in een UI-element
Over het algemeen worden IBOutlets gebruikt om een gebruikersinterfaceobject te verbinden met een ander object, in dit geval een UIViewController. De verbinding dient om ervoor te zorgen dat het object programmatisch kan worden beïnvloed door mijn code of gebeurtenissen. Dit kan eenvoudig worden gedaan met behulp van de assistent van een storyboard en door te klikken en te klikken vanuit het element op de .h eigenschapsectie van de viewcontroller, maar het kan ook programmatisch worden gedaan en de IBOutlet-code handmatig verbinden met het tabblad "verbindingen" van het object de hulpprogramma balk aan de rechterkant. Hier is een objectief voorbeeld van een UIViewController met een labeluitgang:
//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
En snel:
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"
}
}
De verbinding tussen het storyboard-object en het geprogrammeerde object kan worden geverifieerd als verbonden als de stip links van de verklaring van de outlet in de .h is gevuld. Een lege cirkel impliceerde een onvolledige verbinding.