Interface Builder, @IBOutlet et les protocoles de délégué et de la source de données de Swift

Ne peut pas se connecter délégué de la propriété de CustomView déclaré que @IBOutlet àViewController dans Interface Builder – tout simplement ne peut pas établir une connexion.

Voici le code

class CustomView: UIView {
     @IBOutlet var delegate: CustomViewDelegate?
}

@objc protocol CustomViewDelegate {
     ...
}


class ViewController: UIViewController, CustomViewDelegate {
     ...
}

@objc est utilisé en raison de swift protocole, IBOutlet propriété ne peut pas avoir de non-type d'objet, ne sais pas pourquoi protocol CustomViewDelegate: class {} ne fonctionne pas.

Quelqu'un d'autre est venu à travers quelque chose comme ça?

  • Est-ce que votre UIViewController dans l'Interface Constructeur de sa classe définie spécifiquement pour ViewController? Aussi, il est normalement une obligation (le dernier que j'ai vérifié) que @IBOutlet propriétés de l'être définie comme implicitement déballé types, comme suit: CustomViewDelegate!. Cela leur permet d'être nil à l'instanciation, tout en vous permettant de l'utiliser sans l'option de liaison après qu'ils ont été installés.
InformationsquelleAutor Dmitry | 2014-10-03