Question

J'ai un fichier nib où j'ai une vue qui contient une image d'arrière-plan, un bouton et une autre image qui couvre tout l'écran (une ombre) qui doit être déplacé vers l'avant. Sur la vue, je crée des vues de l'enfant, et après avoir créé ceux-ci et de les ajouter à l'aide je dois [self addView] passer à l'avant l'image d'ombre.

Je suis actuellement en utilisant l'attribut de balise pour trouver ce point de vue, mais je pense qu'il ya probablement une meilleure façon, au moyen d'identifier les sous-vues j'ajouter dans Interface Builder par un nom.

Je tente d'ajouter un IBOutlet pour connecter le sous-vue avec son parent, mais il ne fonctionne pas (et aucun sens, puisque la sous-vue est déjà connecté à son parent d'une certaine façon).

Était-ce utile?

La solution

La façon devrait fonctionner IBOutlets, et est probablement la meilleure façon de le faire. Assurez-vous que vous avez fait la bonne connexion dans Interface Builder après que vous les a déclarés dans le fichier .h.

Autres conseils

L'iPhone fait un chargement paresseux des contrôleurs de vue. La pointe peut ne pas avoir été chargé dans initWithCoder ou toute autre méthode d'initialisation d'ailleurs que Kendall spécifié.

viewDidLoad est le lieu privilégié pour accéder à quoi que ce soit de la pointe si vous voulez y accéder avant que la vue est affichée.

L'espoir qui aide.

À quel moment êtes-vous essayez d'accéder aux sous-vues? Si vous essayez au sein d'une initialisation ViewController, les IBOutlets seront nuls. La première méthode que vous pouvez obtenir à eux est probablement viewDidLoad.

La raison pour laquelle il est logique de faire les choses de cette façon est que IBOutlets ne sont que des pointeurs directs à certains composants, même si elles sont déjà subviews d'autre chose. sauve juste beaucoup de chasse.

En utilisant la balise est une manière parfaitement valable pour localiser des vues spécifiques, tant que vous utilisez la viewWithTag: méthode. Si vous utilisez déjà des balises, il n'y a pas besoin de changer de IBOutlets à moins que vous n'aimez pas appeler viewWithTag:.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top