2009-10-03 9 views
0

Le bouton Commutateur est désactivé par défaut. Lorsque l'utilisateur sélectionne l'état ON, une vue modale s'affiche. C'est ce que je dois invoquer le processus mais ça ne marche pas. J'ai cet ensemble dans une pointe, mais je peux aussi le faire programatically veux juste la chose darn travailler ...Avoir des problèmes avec le bouton

MyViewController.h:

- (IBAction)offSwitchChange:(id)sender; 

@end 

MyViewController.m:

- (IBAction)offSwitchChange:(id)sender 
{ 
    if (self.myKeyPadViewController == nil) 
     self.myKeyPadViewController = [[[KeyPadViewController alloc] initWithNibName: 
             NSStringFromClass([KeyPadViewController class]) bundle:nil] autorelease]; 

    [self.navigationController presentModalViewController:self.myKeyPadViewController animated:YES]; 
} 

@end 

Répondre

0

Vous voudrez peut-être pour détecter l'événement de modification comme ceci à la place:

// Do this in viewDidLoad 
[switch addTarget:self action:@selector(switched) forControlEvents:UIControlEventValueChanged]; 

// Then implement it like this 
- (void)switched; 
{ 
    if ([switch isOn]) 
    { 
     if (self.myKeyPadViewController == nil) 
      self.myKeyPadViewController = [[[KeyPadViewController alloc] init] autorelease]; 

     [self.navigationController presentModalViewController:self.myKeyPadViewController animated:YES]; 
    } 
} 

Créer un IBOutlet UISw démange appelé basculez dans votre contrôleur de vue et le brancher dans IB.

MISE À JOUR:

Voici un code réel je l'ai testé:

#import "SwitchResponderViewController.h" 

@implementation SwitchResponderViewController 


- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [sw addTarget:self action:@selector(switched) forControlEvents:UIControlEventValueChanged]; 
} 

- (void)dealloc { 
    [secondController release], secondController = nil; 
    [super dealloc]; 
} 

- (void)switched; 
{ 
    if ([sw isOn]) 
    { 
     NSLog(@"On"); 
     if (!secondController) 
      secondController = [[SecondViewController alloc] init]; 

     [self presentModalViewController:secondController animated:YES]; 
    } 
    else 
    { 
     NSLog(@"Off"); 
    } 

} 

@end 

espoir qui aide.

+0

Merci pour l'aide, mais ce morceau de code n'a pas fonctionné. Qu'est-ce que je rate? – SympleMyne

+0

Désolé à ce sujet. Le mot 'switch' est un mot réservé. Vous devrez le changer pour autre chose. J'ai utilisé sw. En outre, vous ne voudrez pas libérer votre KeyPadViewController. Au lieu de cela, allouez/initez-le comme vous le faites déjà, puis relâchez-le dans votre dealloc puisque c'est un ivar. Faites-moi savoir ce qui se passe lorsque vous essayez d'exécuter le code ayant appliqué ces modifications. –

+0

Matt (Merci pour l'aide) le problème que j'ai est que j'ai ma page de démarrage, puis l'utilisateur peut sélectionner un bouton à partir de là pour ouvrir une page de paramètres (vue modale). À partir de la page des paramètres, l'utilisateur sélectionne le commutateur pour activer la page de code PIN (autre vue modale). Je me suis tué en essayant de mettre en œuvre ce processus simple. Il me semble que je n'arrive pas à le faire correctement. – SympleMyne

Questions connexes