Bonjour,
j'essaye de faire un petit projet iPhone.
Pour le moment, j'essaye de faire quelque chose de très simple.
J'essaye d'avoir une tabBar, et des boutons et champs (textFieldField) sur la première vue de la tabBar.
Pour cela, j'ai utilisé le template fournit par Apple qui fournit une tabBar fonctionnelle directement.
Donc ça me crée 2 classes : FirstView et SecondView . Il crée aussi 3 "xib", main xib, first xib et second xib.
Tout ça fonctionne bien, dans ma première vue, sur Interface Builder, j'ai ajouté un champ text 'TextFieldView" et un bouton "ok".
Bref, du très très simple...
Ensuite, j'ai essayé de créer des propriétés dans la Classe FirstView du Template pour y mettre un Outlet qui fait référence à mon champ.
Là, bizarre, dans Interface Builder, pas moyen de sélectionner l'outlet depuis le FirstResponder et de le lier à mon élément champ.
J'ai donc créé un ViewController sur mon first xib, je lui ai donné une nouvelle classe qui dérive de UIViewController, j'ai créé mes outlet qui font référence à mon champ text. Et là, j'ai réussi à le lier normalement dans interface builder.
Alors zou, je passe au bouton et j'essaye le lier l'action touch down inside à mon controller afin de récupérer l'événement. La pareil, je fait bien la méthod et tout, mais pof, ça plante dès que j'appuie sur le bouton... Pourtant, il y a rien dans la méthode, juste un NSLog.
Alors, j'ai essayer de mettre le même sélecteur sur la classe FirstView, et là, j'ai réussi à lier l'action. Là, ça fonctionne, j'ai bien mon NSLog qui s'affiche.
Dans IB, j'ai donc lié mon action au "First Responder".
Maintenant, mon problème est le suivant : comment puis-je faire dialoguer ma Classe FirstView qui reçoit l'événement du bouton, avec le Controller que j'ai créé et qui contient les référence aux autres éléments d'interface.
Il me semble bien que quand on crée un ViewController sur le .xib dans IB, celui-ci est instancié au chargement du .xib. Par contre, je ne sais pas comment trouver son instance depuis ma classe FirstView.
Plus généralement, j'ai plein de questions :
- Pourquoi ne peut-on pas mettre les références aux objets d'interface dans la classe FirstView ?
- Pourquoi le fait de mettre les action sur un controller que j'ai ajouté fait planter le programme ?
- A quoi correspond réellement "FirstResponder" dans IB ?
- A quoi sert "File's Owner" dans IB ?
- Comment retrouver une instance de ViewController d'un .xib ?
En tous cas, c'est vraiment pas intuitif...
Merci
j'essaye de faire un petit projet iPhone.
Pour le moment, j'essaye de faire quelque chose de très simple.
J'essaye d'avoir une tabBar, et des boutons et champs (textFieldField) sur la première vue de la tabBar.
Pour cela, j'ai utilisé le template fournit par Apple qui fournit une tabBar fonctionnelle directement.
Donc ça me crée 2 classes : FirstView et SecondView . Il crée aussi 3 "xib", main xib, first xib et second xib.
Tout ça fonctionne bien, dans ma première vue, sur Interface Builder, j'ai ajouté un champ text 'TextFieldView" et un bouton "ok".
Bref, du très très simple...
Ensuite, j'ai essayé de créer des propriétés dans la Classe FirstView du Template pour y mettre un Outlet qui fait référence à mon champ.
Là, bizarre, dans Interface Builder, pas moyen de sélectionner l'outlet depuis le FirstResponder et de le lier à mon élément champ.
J'ai donc créé un ViewController sur mon first xib, je lui ai donné une nouvelle classe qui dérive de UIViewController, j'ai créé mes outlet qui font référence à mon champ text. Et là, j'ai réussi à le lier normalement dans interface builder.
Alors zou, je passe au bouton et j'essaye le lier l'action touch down inside à mon controller afin de récupérer l'événement. La pareil, je fait bien la méthod et tout, mais pof, ça plante dès que j'appuie sur le bouton... Pourtant, il y a rien dans la méthode, juste un NSLog.
Alors, j'ai essayer de mettre le même sélecteur sur la classe FirstView, et là, j'ai réussi à lier l'action. Là, ça fonctionne, j'ai bien mon NSLog qui s'affiche.
Dans IB, j'ai donc lié mon action au "First Responder".
Maintenant, mon problème est le suivant : comment puis-je faire dialoguer ma Classe FirstView qui reçoit l'événement du bouton, avec le Controller que j'ai créé et qui contient les référence aux autres éléments d'interface.
Il me semble bien que quand on crée un ViewController sur le .xib dans IB, celui-ci est instancié au chargement du .xib. Par contre, je ne sais pas comment trouver son instance depuis ma classe FirstView.
Plus généralement, j'ai plein de questions :
- Pourquoi ne peut-on pas mettre les références aux objets d'interface dans la classe FirstView ?
- Pourquoi le fait de mettre les action sur un controller que j'ai ajouté fait planter le programme ?
- A quoi correspond réellement "FirstResponder" dans IB ?
- A quoi sert "File's Owner" dans IB ?
- Comment retrouver une instance de ViewController d'un .xib ?
En tous cas, c'est vraiment pas intuitif...
Merci