Lorsque vous accrochez Swift code à un Storyboard, comment ajoutez-vous les balises IBAction
et IBOutlet
?
Ajoutez les attributs IBAction
et IBOutlet
aux variables et aux fonctions afin qu'ils soient visibles dans le générateur d'interface.
class ViewController: UIViewController {
@IBOutlet var label: UILabel?
@IBAction func doTap(x:UIButton) {
println("Tapped: \(x)")
}
}
Le code ci-dessous montre le format IBOutlet et IBAction en Swift:
class MyViewController: UIViewController {
@IBOutlet weak var btnSomeButton: UIButton?
@IBOutlet weak var lblLabelItem: UILabel?
@IBAction func btnSomeButtonClicked(sender: UIButton) {
...
}
}
Vous pouvez les lier de la même manière que dans Objective-C.
Je serais plus d'accord avec Jayprakash que la première réponse votée. La seule chose que je corrigerais est le marquage des IBOutlets comme implicitement déballé avec le !
La première réponse était correcte, mais plusieurs modifications ont été apportées dans Swift et comment il interagit avec IB dans la dernière version. Dans Swift, les IBOutlets n'ont plus de comportement implicite ou magique- -ils sont simplement des annotations pour IB. À la date de cette réponse, le code suivant est correct:
// How to specify an the equivalent of IBOutletCollection in Swift
@IBOutlet var fields: [UITextField]!
// How to specify a standard IBOutlet
@IBOutlet weak var button: UIButton!
// How to specify an IBAction
@IBAction func buttonWasPressed(sender: UIButton) { ... }
Utilisez simplement l'ancienne technique ctrl + glisser qui était populaire dans Xcode5 et tout fonctionne bien.
Lors de la création d'un projet, vous devez avoir sélectionné le storyboard, afin de pouvoir ajouter vos IBOutlet
directement dans le story-board.
Le code ci-dessous vous donne une idée de la façon d'ajouter IBOutlet
au UILabel
class ViewController: UIViewController {
@IBOutlet var label : UILabel
}