2009-07-14 5 views
0

Je ne sais pas comment faire une instruction if-else dans une IBAction! Je peux seulement les faire dans les clics de bouton ... ce que je veux qu'il fasse est de vérifier pour quelle # la question d'int est et de faire les changements appropriés. aidez s'il vous plaît!Comment structurer une instruction if-else dans une méthode IBAction

MainView.h

#import <UIKit/UIKit.h> 
#import <Foundation/Foundation.h> 

@interface MainView : UIView{ 
    IBOutlet UIImageView *background; 
    IBOutlet UIButton *button1; 
    IBOutlet UIButton *button2; 
    IBOutlet UIButton *button3; 
    IBOutlet UIButton *button4; 
    IBOutlet UILabel *questionLabel; 
} 

@property (nonatomic, retain) UIButton *button1; 
@property (nonatomic, retain) UIButton *button2; 
@property (nonatomic, retain) UIButton *button3; 
@property (nonatomic, retain) UIButton *button4; 
@property (nonatomic, retain) UILabel *questionLabel; 
@property (nonatomic, retain) UIImageView *background; 

- (IBAction)Button1clicked; 
- (IBAction)Button2clicked; 
- (IBAction)Button3clicked; 
- (IBAction)Button4clicked; 
@end 

MainView.m

#import "MainView.h" 

    @implementation MainView 

    @synthesize button1, button2, button3, button4, questionLabel, background; 

    int question = 1; 

    BOOL oneRight = FALSE; 
    BOOL twoRight = FALSE; 
    BOOL threeRight = FALSE; 
    BOOL fourRight = FALSE; 


    - (IBAction)Button1clicked { 
     if (oneRight == TRUE) { 
      questionLabel.text = @"CORRECT!"; 
      question++; 
     } else { 
      questionLabel.text = @"FAIL"; 
     } 
    } 

    - (IBAction)Button2clicked { 
     if (twoRight == TRUE) { 
      questionLabel.text = @"CORRECT!"; 
      question++; 
     } else { 
      questionLabel.text = @"FAIL"; 
     } 
    } 

    - (IBAction)Button3clicked { 
     if (threeRight == TRUE) { 
      questionLabel.text = @"CORRECT!"; 
      question++; 
     } else { 
      questionLabel.text = @"FAIL"; 
     } 
    } 

    - (IBAction)Button4clicked { 
     if (fourRight == TRUE) { 
      questionLabel.text = @"CORRECT!"; 
      question++; 
     } else { 
      questionLabel.text = @"FAIL"; 
     } 
    } 

    int foo(int question) { 
     if (question == 1) { 
     oneRight = TRUE; 
     twoRight = FALSE; 
     threeRight = FALSE; 
     fourRight = FALSE; 
     } 
    } 

    @end 

Répondre

1

Selon Beginning iPhone Development, vous pouvez également comparer l'expéditeur simplement de mauvais pointeur de

-(IBAction)buttonPressed:(id) sender { 
    if (sender == firstPointer) {  
      ... 
    } 
    else if (sender == secondPointer) {  
      ... 
    } 
    ... 
} 
+0

En fait, j'ai juste ce livre et je lis maintenant! Je viens de découvrir ça! –

2

Je suggère en utilisant du paramètre de l'expéditeur du IBAction appel. Chaque fois qu'une méthode IBAction est appelée l'objet faisant l'appel est envoyé avec elle, il est facile de déterminer quel bouton a été cliqué.

- (IBAction) buttonClicked:(id) sender { 

    if([ sender tag ] == answer) { 
     questionLabel.text = @"CORRECT"; 
     ... 
    } 
    else { 

     questionLabel.text = @"FAIL"; 
     ... 
  } 
} 
+0

le bouton faire que grâce! mais ma question est que je veux toujours vérifier si (question == 1) { réponse = 1; } sinon if (question == 2) { réponse = 2; } Donc, fondamentalement, je veux toujours vérifier quelle question c'est! –