Bouton qui click sur un bouton... Et oui !

[font=verdana, geneva, lucida,]Bonjour,[/font]



[font=verdana, geneva, lucida,]Ce matin je bug ! [/font]



[font=verdana, geneva, lucida,]Junior développeur iOs je me suis inscrit ici pour rejoindre cette belle communauté.[/font]



[font=verdana, geneva, lucida,]Je travail sur une application avec un bouton de style play stop au centre et 4 boutons autour de ce dernier.[/font]

[font=verdana, geneva, lucida,]1 bt "Live" et 1 bt "Podcast", quand je lance mon app la lecture audio se fait sur un flux live, je voudrais juste que mon app click automatiquement sur le bt play (au centre) quand je click sur "Live" ou "Podcast" (parallèlement des variables changent bien sur).[/font]



[font=verdana, geneva, lucida,]C'est tout con mais je bug ce matin...[/font]



[font=verdana, geneva, lucida,]Cette action s'effectue ici :[/font]

[font=verdana, geneva, lucida,]- (IBAction)LivePressed:([/font][font=verdana, geneva, lucida,]id)sender {[/font]



[font=verdana, geneva, lucida,]}[/font]



[font=verdana, geneva, lucida,]et appelle : (c'est mon bt PLAY/STOP)[/font]

[font=verdana, geneva, lucida,]- (IBAction)buttonPressed:([/font][font=verdana, geneva, lucida,]id)sender[/font]

[font=verdana, geneva, lucida,]{[/font]

[font=verdana, geneva, lucida,]............[/font]

[font=verdana, geneva, lucida,]}[/font]



[font=verdana, geneva, lucida,]Une idée pour me sortir du flou ?[/font]

Réponses

  • Merci de bien vouloir te présenter dans la section adéquate, et en dire un peu plus sur toi (surtout sur ta formation, les langages que tu connais, etc.)

    Un
    [self LivePressed:nil]
    
    devrait faire l'affaire.
  • CéroceCéroce Membre, Modérateur
    Tu changes l'icône quand on appuie sur le bouton, j'imagine ?

    Alors, il suffit de changer l'icône. (Il faut décoréler la méthode d'action et le fait de changer d'icône et de basculer la variable interne).



    Ou sinon:
    [self buttonPressed:self];
    
  • Bonjour, et merci.



    Je vais travailler sur ça et je vais me présenter, Larme je pense être au bon endroit pour trouver mes réponses car je te vois ici et sur mac4ever.
  • LivePressed:nil

    c'est tout bon ! tu peux me dire que fait le":nil" sur mon bouton ?
  • Dans ton cas (sans forcer le IBAction par code), le sender c'est le bouton.

    Après, tu peux faire un travail sur ce sender (changer ses propriétés, etc.).
  • Ok, j'avais bien compris que mon problème était de lui fournir un sender, c'est le nil qui s'occupe de ça si j'ai bien compris.
  • AliGatorAliGator Membre, Modérateur
    Non c'est pas le nil qui s'occupe de ça.

    Le paramètre "sender" n'est là  que par convénience, si tu as besoin.



    Si tu connectes un UIButton de ton XIB à  une IBAction dans ton code (ou par code via la méthode "addTarget:action:forControlEvent:" c'est pareil), automatiquement quand tu vas tapper sur le bouton et que ça va appeler l'action associée, si l'action a ce paramètre "sender", ça va passer le bouton en paramètre du sender.



    Mais après si tu n'utilises pas ce "sender" dans le code de ton action à  la limite tu t'en fiches. Tu aurais même pu écrire ton IBAction sans le paramètre ":(id)sender" d'ailleurs du coup si tu ne t'en sers pas.



    Par contre si tu te sers du "sender" dans le code de ton IBAction, par exemple pour en profiter pour changer l'état du bouton qui a déclenché l'action ou quoi... bah forcément dans ce cas comme le sender te sert il faut lui passer le bon objet, cohérent en fonction du contexte, et pas nil.





    Là  la suggestion d'appeller [self LivePressed:nil] et donc de passer "nil" marche tout simplement parce qu'en fait tu t'en fiches un peu apparament de savoir dans le code de ton "-(IBAction)LivePressed:(id)sender" quel est le bouton qui a déclenché cette action, puisqu'à  priori tu n'utilises pas ce sender dans ton code ensuite... donc quelle que soit sa valeur ça changera rien.



    Par contre si vraiment tu ne te sers pas du "sender", tu aurais tout aussi bien fait de déclarer ton "-(IBAction)livePressed" sans le paramètre puisque tu ne l'utilises pas (comme ça en plus tu n'aurais pas eu de confusion)



    Je te conseille :

    - d'aller lire la doc "Cocoa Fundamentals" en particulier la section "Communicating With Objects" (qui cause d'Outlets, du mécanisme de Target/Action et de toutes les formes possibles de ces IBActions dans UIKit, etc)

    - mais aussi de lire toute la doc qui est relative aux conventions de nommage (que tu ne respectes pas dans ton code, en particulier les majuscules/minuscules). Je te conseille de prendre l'habitude dès le début de les respecter, non seulement parce que tu prendras l'habitude tôt plus ça sera naturel après, mais en plus parce que rendra ton code plus lisible (les conventions de nommage en Cocoa sont universelles et impliquent parfois même un sens particulier à  chaque token ce qui fait que quand tu nous postes ton code on s'imagine déjà  si tel objet est une classe ou une instance ou une constante ou autre) et surtout cela va t'éviter des déboires par la suite (plusieurs mécanismes Cocoa sont basées sur les conventions de nommage, comme le KVC, ARC, et autres...)
Connectez-vous ou Inscrivez-vous pour répondre.