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.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow