0

J'ai une vue qui a un navigationController avec deux boutons, START (essentiellement un bouton de connexion) et SETTINGS. Lorsque je clique sur PARAMÈTRES, la vue des paramètres apparaît et se ferme comme prévu. Je peux cliquer sur les paramètres, puis revenir plusieurs fois sans que rien ne se bloque. Bien. Maintenant, quand un utilisateur clique sur START, j'appelle la méthode SHOWLOGOFFBUTTONS pour changer les boutons qui apparaissent en haut de la vue, dans le navController. Le navBar devrait (et n'a) maintenant seulement un bouton LOGOFF. Quand on clique sur ce bouton, j'appelle SHOWLOGINBUTTONS pour que l'utilisateur ait les mêmes boutons de connexion que précédemment, afin de pouvoir accéder à nouveau à SETTINGS et START (Login).iPhone SDK - navController pushViewController - ne répond pas

Le problème est, une fois que je fais le "bouton-interrupteur" des boutons LOGIN aux boutons LOGOFF à LOGIN BUTTONS, le bouton SETTINGS cesse de fonctionner. La méthode SHOWSETTINGS se déclenche et s'exécute (aucune erreur ne se produit) mais la vue n'apparaît pas.

Toute aide serait grandement appréciée !!

-(void)showLoginButtons{ 
    self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStylePlain target:self action:@selector(showSettings)]; 
    self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc] initWithTitle:@"Start" style:UIBarButtonItemStylePlain target:self action:@selector(tryConnection)]; 
} 

-(void)showLogoffButtons{ 
    self.navigationItem.rightBarButtonItem=nil; 
    self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc] initWithTitle:@"Logoff" style:UIBarButtonItemStylePlain target:self action:@selector(resetConnectionAndScreen)]; 
} 

-(void)showSettings{ 
    SettingsViewController *mySettingsViewController= [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil]; 
    iPhone_PNPAppDelegate *mainDelegate = (iPhone_PNPAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    mySettingsViewController.settings=mainDelegate.settings; 
    [[self navigationController] pushViewController:mySettingsViewController animated:YES]; 
    [mySettingsViewController release]; 
} 

Répondre

1

Vous devez libérer vos boutons car vous les allouez. Pour cela, je l'utilise normalement autorelease - Essayez: Aussi

-(void)showLoginButtons{ 
    self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStylePlain target:self action:@selector(showSettings)] autorelease]; 
    self.navigationItem.leftBarButtonItem=[[[UIBarButtonItem alloc] initWithTitle:@"Start" style:UIBarButtonItemStylePlain target:self action:@selector(tryConnection)] autorelease]; 
} 

faire la même chose dans votre méthode showLogoffButtons.

+0

Merci pour les réponses, Sean - malheureusement, le problème persiste. – Dutchie432

+0

Avez-vous résolu le problème? Je me demandais juste pourquoi j'ai été choisi comme réponse si le problème persiste toujours? :) – Sean

+0

Umm - ça fait un moment que je vais devoir vérifier comment je l'ai fonctionné. Si je me souviens bien - le problème était double et vous me dirigez dans la bonne direction. Merci Sean! – Dutchie432

Questions connexes