Szukaj…
Uwagi
IBOutlet nie jest ani słowem zastrzeżonym, ani zmienną, ani klasą, jest cukrem syntaktycznym dla Interface Builder. Po wstępnym przetworzeniu kodu źródłowego Objective-C jest on rozwiązywany do zera.
W Swift jest to rozwiązywane jako zero.
Jest zadeklarowany w <UIKit/UINibDeclarations.h>
jako
#ifndef IBOutlet
#define IBOutlet
#endif
Korzystanie z IBOutlet w elemencie interfejsu użytkownika
Ogólnie rzecz biorąc, IBOutlety są używane do łączenia obiektu interfejsu użytkownika z innym obiektem, w tym przypadku UIViewController. Połączenie służy do programowego wpływu na mój kod lub zdarzenia na obiekt. Można to zrobić po prostu za pomocą asystenta w serii ujęć i kliknięciu z wciśniętym klawiszem Control w elemencie do sekcji właściwości .h kontrolera widoku, ale można to również zrobić programowo i ręcznie łącząc kod IBOutlet z zakładką „połączenia” obiektu pasek narzędzi po prawej stronie. Oto przykładowy cel UIViewController z gniazdem etykiet:
//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
I szybki:
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"
}
}
Połączenie między obiektem scenorysowym a zaprogramowanym obiektem można zweryfikować jako połączone, jeśli kropka po lewej stronie deklaracji wylotu w .h jest wypełniona. Pusty okrąg sugerował niepełne połączenie.