2010-04-26 4 views
1

J'utilise une barre de navigation sur laquelle je pousse plusieurs vues selon ce que l'utilisateur selects.Now je dois pop au premier contrôleur de vue à partir du troisième contrôleur. Les applications apparaissent au premier affichage du contrôleur, mais les éléments de navigation ne sont pas modifiés comme dans le second contrôleur de vue, mais j'ai besoin de changer les éléments de navigation.pop au premier contrôleur de vue (contrôleur de vue racine) du contrôleur troisième vue navigationItems ne sont pas modifiés

code

que je: appdelagte.h

Bool isDelete; 
@property(nonatomic)Bool isDelete; 

appDelegate.m

@synthesize isDelete; 

thirdViewController:

-(void)viewWillAppear:(Bool)animated { 
    appDelegate.isDelete=YES; 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

secondViewController.m

-(void)viewWillAppear:(Bool)animated { 
    if(appDelegate.isDelete==YES) 
    { 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 
} 

Voici la première vue du contrôleur, mais les éléments de navigation ne sont pas modifiés car ils sont dans le contrôleur de la vue secondaire.

Tout le monde m'aide à résoudre ce problème. Merci d'avance.

Répondre

8

Peut être que vous pouvez faire ce comportement sans montrer troisième ctrl? Par exemple, cochez la case if(appDelegate.isDelete==YES) dans second ctrl.

- (void) showThird { 
    if(appDelegate.isDelete == NO) { 
     MyThirdCtrlClss *ctrl = [[MyThirdCtrlClss alloc] init]; 
     [self.navigationController pushViewController:ctrl animated:YES]; 
     [crel release]; 
    } else { 
     [self.navigationController popToRootViewControllerAnimated:YES]; 
    } 
} 
Questions connexes