If else

57 views
Skip to first unread message

Frédéric Elharar

unread,
Jun 18, 2012, 11:07:43 AM6/18/12
to cocoaheads cocoaheads
Bonjour à tous,

J' ai un petit soucis basique, après des recherches sur Google j'ai vu que je n'étais pas le seul à avoir rencontré ce problème mais je n'ai toujours pas trouvé la solution.
Quelqu'un  parmi vous a certainement la solution.


Je veux faire disparaitre un bouton(button) en en touchant un autre(abutton1), et le faire réapparaitre de la même manière si il a déjà été supprimé. Le code qui suit ne fonctionne pas :


- (IBAction)abutton1:(id)sender
{
if (button.hidden == YES){

       button.hidden = NO;
    
    }
    else  
    {
       buttton.hidden=YES;
    
    }

}

(Et ce avec les déclarations addoc dans l'"@interface", les "@property" et "@synthesize".)

Si je supprime tout sauf :

- (IBAction)abutton1:(id)sender
{
buttton.hidden=YES;
}

j'ai bien disparitiopn du bouton "button".


Merci pour votre aide !

Fred

Nicolas Bouilleaud

unread,
Jun 19, 2012, 6:32:56 PM6/19/12
to cocoahea...@googlegroups.com
Hello,

tu as un button avec deux "t", et un autre avec trois. (button vs buttton). C'est dans ton code ou juste dans le mail?

Sinon, je ne sais pas si c'est le problème, mais il ne faut jamais comparer un booléen avec YES. Dans ton exemple, mieux vaut écrire par exemple, "if(button.hidden)", ou directement,  "button.hidden = ! button.hidden;".

(Si ça peut aider…)


--
Nicolas


--
You received this message because you are subscribed to the Google Groups "CocoaHeads France" group.
To post to this group, send email to cocoahea...@googlegroups.com.
To unsubscribe from this group, send email to cocoaheads-fra...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cocoaheads-france?hl=en.

Mathieu Godart

unread,
Jun 19, 2012, 7:20:16 PM6/19/12
to cocoahea...@googlegroups.com, cocoahea...@googlegroups.com
Tu as essayé de suivre ce qui se passe au débugger ? Tu peux aussi logger la valeur de hidden au début de la fonction.


Thomas Sarlandie

unread,
Jun 19, 2012, 9:16:46 PM6/19/12
to cocoahea...@googlegroups.com
Frédéric,

Pour nous permettre de reproduire le problème : à quels évènements as-tu attaché cette action ?

thomas

2012/6/19 Mathieu Godart <mathieu...@gmail.com>

Nicolas VERINAUD

unread,
Jun 20, 2012, 2:07:58 AM6/20/12
to cocoahea...@googlegroups.com, cocoahea...@googlegroups.com
Bonjour,

Comme dit précédemment vérifie la syntaxe : buttton et button.

Nicolas VERINAUD
STA WebDev & Apple
Sent from my iPhone

Jean-François GRANG

unread,
Jun 20, 2012, 3:10:59 AM6/20/12
to cocoahea...@googlegroups.com
Vérifiés que tu as bien bindé tous tes outlets et toutes tes actions.

Envoyé de mon iPhone

Guillaume Cerquant

unread,
Jun 20, 2012, 4:39:37 AM6/20/12
to cocoahea...@googlegroups.com, cocoaheads cocoaheads


On 18 juin 2012, at 17:07, Frédéric Elharar <frederic...@wanadoo.fr> wrote:

(IBAction)abutton1:(id)sender
{
if (button.hidden == YES){

       button.hidden = NO;
    
    }
    else  
    {
       buttton.hidden=YES;
    
    }

}

(Et ce avec les déclarations addoc dans l'"@interface", les "@property" et "@synthesize".)

Attention, actuellement tu n'accèdes pas à ton butt(t)on via les property que tu déclares. 

Si tu as 
@property (strong) UIButton *button;
alors tu utilises self.button

Cela dit, au vu du fonctionnement que tu décris, ton problème n'est pas là. 
Si tu ne trouves toujours pas, mets sur pastebin ton .h et .m complets. 

-- 
Guillaume
Sent from a mobile device.

Frédéric Elharar

unread,
Jun 20, 2012, 7:16:26 AM6/20/12
to cocoahea...@googlegroups.com, cocoahea...@googlegroups.com
Merci beaucoup à tous, je continue à tester avant de revenir vers vous !

Fred
--

Frédéric Elharar

unread,
Jun 20, 2012, 2:14:12 PM6/20/12
to cocoahea...@googlegroups.com
Merci beaucoup à tous !
Après avoir apporté les modifs que vous m'avez proposé, je tombe sur ceci :

- (IBAction)abutton1:(id)sender

{

    

    if (self.button.hidden)

        

    {
       self.button.hidden = 0;
     
        NSLog(@"bb18.hidden=%d", self.bb18.hidden+5);//+5 pour meilleur lisibilité des NSLog
    }

    

   else  //if (button.hidden==0)

       

        {
            self.button.hidden=1;
            
            NSLog(@"bb18.hidden=%d", self.bb18.hidden);

            

            }

 

}

Ca ne marche toujours pas ! 
Les NSLog donnent dans cet ordre :

"2012-06-20 19:48:24.315 Blabla[32351:fb03] button.hidden=1
 2012-06-20 19:48:24.317 Blabla[32351:fb03] button.hidden=5"

Sachant que quand je teste j'ai self.button.hidden = 0 ; donc la 1ère condition est effectivement considérée comme fausse, ça passe à "else" directement, parfait,  d'ou la 1ere ligne de NSLog ; ce que je ne comprends c'est pourquoi il repart sur le test "if" pour m'afficher la 2ème ligne !!?  J'oublie quelque chose qui doit arrêter le test après le "else" ??

J'ai le même résultat avec "switch".:(

Encore merci !


PS les "button "ou" buttton" ne sont là que pour le mail.

Guillaume Cerquant

unread,
Jun 23, 2012, 6:56:55 PM6/23/12
to cocoahea...@googlegroups.com
Mets un log au début de ta méthode, avant le if, et vérifie qu'il ne s'affiche pas deux fois pour un touch.
Si c'est effectivement le cas, vérifie dans ton xib que ton bouton n'est pas configuré avec deux actions qui pointent sur ta méthode.


--
Guillaume

Thibaut Jarosz

unread,
Jun 23, 2012, 7:55:36 PM6/23/12
to cocoahea...@googlegroups.com
On 20 juin 2012, at 20:14, Frédéric Elharar wrote:

ce que je ne comprends c'est pourquoi il repart sur le test "if" pour m'afficher la 2ème ligne !!?  J'oublie quelque chose qui doit arrêter le test après le "else" ??

M'est-avis qu'il y a deux actions de configurées sur le bouton. Par exemple, une sur le TouchDownInside et une seconde sur le TouchUpInside.

Frédéric Elharar

unread,
Jun 24, 2012, 1:21:24 AM6/24/12
to cocoahea...@googlegroups.com, cocoahea...@googlegroups.com
Merci encore ! C'est bien au niveau du storyboard qu'il y avait un problème ! J'avais relié mes boutons au ViewController et au FirstReponder ! Quelle idée !!!:)))

Fred
--
Reply all
Reply to author
Forward
0 new messages