Impossible de connecter IBOutlet du storyboard à la sous-class UIView

Je suis capable de cliquer avec le button droit de la souris et de faire glisser mon file de sous-class UIView personnalisé vers les éléments du storyboard pour les connecter, mais je ne peux pas le faire dans l'autre sens. Je crois que c'est un bug Xcode. Y at-il quelque chose que je puisse faire pour résoudre ce problème? Ce n'est pas la première fois que ça arrive déjà et c'est agaçant.

J'ai déjà essayé de nettoyer et de redémarrer Xcode plusieurs fois sans succès.

Cela ne fonctionne pas Cela ne fonctionne pas (clic droit du storyboard au file Swift)

Cela marche Cela fonctionne (clic droit de IBAction du file swift au storyboard)

Btw, j'utilise Xcode 8.1 avec Swift 3.0.

MISE À JOUR: Je ne cherche pas de réponse sur comment connecter IBOutlets / IBActions, car comme je l'ai mentionné dans la question ci-dessus (et aussi dans les captures d'écran), je suis déjà capable de les connecter et l'application fonctionne bien. La question est plus sur pourquoi Xcode ne me laisserait pas me connecter à partir de Storyboard> file Swift, mais me laisser faire à partir de file Swift> Storyboard. Je suis désolé si la question est trompeuse.

Nous voyons parfois ce problème aussi depuis Xcode 8 et supposons qu'il s'agit d'un bug Xcode.

Comme une solution de contournement:

  • Ecrire la sortie dans le code @IBOutlet weak var myUiElement: UIView!

  • Ctr + Faites glisser depuis votre sortie vers l'élément de l'interface user dans le storyboard

Créer un sharepoint vente comme celui-ci dans Objective-C

 @property (nonatomic, weak) IBOutlet UIView *view; 

ou comme dans Swift 3

 @IBOutlet weak var instruction: UILabel? 

puis connectez-le comme indiqué dans cette image.

entrez la description de l'image ici

Parfois, la manière normale de connecter l'action et la sortie ne fonctionne pas en raison de la sous-class. De cette façon est utile pour de telles situations.

1: Affectez la class à viewController.

2: Nettoyez votre projet avec Shift-Alt-Cmd-K.

3: Quittez d'abord Xcode et effacez datatables dérivées. aller à: ~ / Bibliothèque / Developer / Xcode / DerivedData

Choses à vérifier si IBOutlet ne se connecte pas:

  1. La class est-elle définie dans le storyboard?

    Sélectionnez le UIViewController dans le storyboard , puis sur le côté droit de l'écran, select l' identity inspector et affectez la class appropriée.

  2. Le type de sortie que vous avez défini correspond-il à celui du storyboard ? Par exemple, nous connectons UIButton , alors la sortie devrait ressembler à ceci, écrire le code pour la prise, puis se connecter au controller de vue:

     @IBOutlet weak var theButton: UIButton! 

Une autre façon de simplement créer votre nom de button manuellement dans le controller de vue comme ceci –

 @IBOutlet weak var button: UIButton! 

puis connectez votre button en faisant glisser pour voir le controller comme image montrée [! entrez la description de l'image ici

PS: – s'il vous plaît nettoyer vos données dérivées aussi.

Après avoir essayé une partie de la solution donnée, j'ai finalement redémarré le macbook. Cela semble être un bug du côté de XCode. Tant pis.

appuyez sur Ctrl que faites glisser vers le file rapide et créer une sortie.