[obj-C Cocoa] Probléme de paramétre de fonction avec IB

bigzzzzz

Membre enregistré
19 Février 2011
2
0
Bonjour a tous, je me suis lancé dans le développement d'application iphone/ipad et j'ai quelques questions ou je bloque:

La première c'est que sur chaque Vue j'aimerai avoir un bouton pour retourner sur le menu quand il y a une seul vue c'est facile en fesant par exemple:


Bloc de code:
-(void) returnMenu{
[vueActuelle removeFromSuperview]; // On enléve vueActuelle
[self addSubview:vueMenu]; //On affiche le menu
}
Cependant avec plusieurs vue je crée donc plusieurs fonction similaire en changeant juste le "vueActuelle" par le nom de la vue.

Je me demandais si c'est pas mieu de faire une fonction général avec comme paramètre la vue actuelle mais j'arrive pas a récupérer le nom de la vue actuelle lors que je clique sur le bouton.
Par exemple:


Bloc de code:
-(void) returnMenu (autreVue *) viewToDisabled{ //autreVue hérite de UIView
[viewToDisabled removeFromSuperview]; // On enléve a vue en paramétre
[self addSubview:vueMenu]; // On affiche le menu
}
Une autre question du même genre c'est pour afficher les Vue dés que je clique sur un bouton:


Bloc de code:
-(void) changeToVideo{
[vueMenu removeFromSuperview]; // On enléve vueMenu
[self addSubview:vueVideo]; // On affiche vueVideo
}
Vue que j'ai plusieurs bouton qui affiche toujours une vue de type autreVue, cela reviendrai a créer une fonction qui prendrai le nom du bouton par exemple pour le mettre en paramètre.
A moins que Interface Builder puisse reconnaître que la fonction que je lie au bouton a des paramètre et que je puisse l'indiquer ici, mais j'ai cherché sans succès.

Merci d'avance pour votre aide
 
Je me demandais si c'est pas mieu de faire une fonction général avec comme paramètre la vue actuelle mais j'arrive pas a récupérer le nom de la vue actuelle lors que je clique sur le bouton.
Tu peux aussi utiliser l' "Object ID" présent sur les différents objet définis dans IB (onglet "I" dans la fenêtre "Inspector")

Sinon pour récupérer les infos de l'objet "cliqué" il faut interroger le paramètre "sender", à caster dans la classe qui va bien, de ton IBAction.
 
J'avais pensé a ça pour retourner sur le menu mais j'étais pas sur de comment faire je vais me renseigner pour voir comment m'en servir. Car enfaite l'objet cliqué c'est le bouton, mais pas la view donc récupérer l'id par le sender revient a récupérer l'id du bouton et non la view :s (j'ai peu être mal comprit ce que revoit le sender aussi ^^)


Est-ce possible de faire si l'id renvoyé par le sender est 35 alors virer la vueHome et passé a vueVideo, si c'est 36 faire la même chose mais passé a vuePhoto ect... car j'ai du mal a comprendre comment récupérer l'id de la view que je veux quand je clique sur un bouton dans le menu.

Merci de ta réponse rapide :)
 
Un NSButton est aussi une vue donc il connait sa "supervue".

Sinon lors des intialisations de tes objets fait en sorte qu'ils se connaissent. Il faut faire discuter tout ce petit monde. La programmation objet a aussi pour but de lutter contre l'autisme :D:D:D
 
J'avais pensé a ça pour retourner sur le menu mais j'étais pas sur de comment faire je vais me renseigner pour voir comment m'en servir. Car enfaite l'objet cliqué c'est le bouton, mais pas la view donc récupérer l'id par le sender revient a récupérer l'id du bouton et non la view :s (j'ai peu être mal comprit ce que revoit le sender aussi ^^)


Est-ce possible de faire si l'id renvoyé par le sender est 35 alors virer la vueHome et passé a vueVideo, si c'est 36 faire la même chose mais passé a vuePhoto ect... car j'ai du mal a comprendre comment récupérer l'id de la view que je veux quand je clique sur un bouton dans le menu.

Merci de ta réponse rapide :)

Le type id ce n'est pas un nombre ou un identifiant mais l'objet en lui-même, par contre tu peux attribuer un tag à un objet pour faire ce que tu veux (et là tu pourras voir si [sender tag] == 35 etc.).