Recherche…


Remarques

IBOutlet n'est ni un mot réservé, ni une variable ou une classe, est le sucre syntaxique pour Interface Builder. Une fois le code source d'Objective-C pré-traité, il est résolu à rien.

Dans Swift, il est résolu comme nul.

Il est déclaré dans <UIKit/UINibDeclarations.h> comme

#ifndef IBOutlet
#define IBOutlet
#endif

Utilisation d'un IBOutlet dans un élément d'interface utilisateur

En général, IBOutlets permet de connecter un objet d'interface utilisateur à un autre objet, en l'occurrence un UIViewController. La connexion permet à l'objet d'être affecté mon code ou les événements par programmation. Cela peut se faire simplement en utilisant l'assistant depuis un storyboard et en cliquant sur l'élément dans la section de propriétés .h du contrôleur de vue, mais cela peut aussi se faire par programmation et connecter manuellement le code IBOutlet à l'onglet "connections" de l'objet. la barre d'utilité à droite. Voici un exemple objectif-c d'un UIViewController avec une sortie d'étiquette:

//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

Et vite:

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"
    }
}

La connexion entre l'objet storyboard et l'objet programmé peut être vérifiée comme étant connectée si le point situé à gauche de la déclaration de la prise dans le .h est rempli. Un cercle vide impliquait une connexion incomplète.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow