Commandes Swift, iboutlet et personnalisées
Je suis peut-être faire quelque chose de vraiment stupide, mais je ne semble pas être en mesure d'utiliser Interface Builder pour vous connecter IBOutlet variables de vues personnalisées, mais seulement en Swift.
J'ai créé une catégorie appelée Mavue, qui s'étend de UIView. Dans mon contrôleur, j'ai un Mavue variable (déclarée comme @IBOutlet var newView: Mavue). Je vais dans l'IB et faites glisser une UIView sur la fenêtre et lui donner une classe de Mavue.
Chaque fois que j'ai fait similaire en Objective-C, je suis alors en mesure de cliquer sur la Vue Contrôleur de bouton en haut de la fenêtre d'application, sélectionnez la variable et faites-le glisser vers le bas pour le contrôle de lier les deux ensemble. Quand je l'ai essayer dans Swift, il refuse de reconnaître que la vue y est.
Si je change la classe de la variable dans le contrôleur de UIView, il fonctionne très bien. Mais pas avec mon affichage personnalisé.
Quelqu'un d'autre a eu ce problème? Et est-ce une fonctionnalité, ou tout simplement mon idiotie?
Code pour Contrôleur
import UIKit
class ViewController: UIViewController {
@IBOutlet var newView:MyView
override func viewDidLoad() {
super.viewDidLoad()
//Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Dispose of any resources that can be recreated.
}
}
Code pour afficher
import UIKit
class MyView: UIView {
init(frame: CGRect) {
super.init(frame: frame)
//Initialization code
}
/*
//Only override drawRect: if you perform custom drawing.
//An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect)
{
//Drawing code
}
*/
}
source d'informationauteur hobart
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire, et je pense que c'est en partie un problème de mise en cache et partiellement juste un Xcode6/Swift question. La première étape que j'ai trouvé était nécessaire était de s'assurer que le point de vue du contrôleur .swift fichier sera chargé dans la Adjoint de l'Éditeur au moment de choisir "automatique".
Avec Xcode conclusion que les deux fichiers sont liées je pourrais parfois glisser à partir de la vue/bouton/etc. à partir de l'IB à l' .swift fichier, mais souvent faites glisser le cercle vide dans la gouttière de la
@IBOutlet var newView:MyView
ligne pour la vue je voulais qu'il soit à la hauteur.Si vous ne pouvez pas obtenir le fichier à charger dans le Rédacteur en chef Adjoint puis j'ai trouvé que la suite serait souvent des travaux:
Si cela vous semble pour vous la moitié du chemin/nulle part ajouter un commentaire et je vais voir si ça déclenche quelque chose d'autre, je n'ai
Dans mon cas
import UIKit
manquait, après l'ajout de cette ligne que je pouvais créer un IBOutlet du Storyboard de nouveau.