2010-07-21 6 views
0

ceci est mon flux navA-> navB-> NAVC puis lorsque l'utilisateur appuie sur le bouton retour NAVC il va NAVANavigation pour iPhone

mais lorsque l'utilisateur appuyez à nouveau NAVA il devrait aller à NAVB mais son passe NAVC Je ne sais pas pourquoi

dans NAVC Je l'ai fait

XMLAppDelegate *appDelegate=(XMLAppDelegate*)[UIApplication sharedApplication].delegate; 
    [self.view removeFromSuperview]; 
    [appDelegate.window addSubview:appDelegate.preLoginNavController.view]; 

et NAVA je fais cela pour aller à NAVB // c'est preLoginNavController.m XMLAppDelegate appDelegate = (XMLAppDelegate) [UIApplication sharedApplication] .delegate;

//appDelegate.RootNavController.shouldHasBackButton = YES; 
    [self.navigationController.view removeFromSuperview]; 
    [appDelegate.window addSubview:appDelegate.navigationController.view];//[navigationController view] 

et appdidfinish()

[window addSubview:[preLoginNavController view]]; 
    [window makeKeyAndVisible];**strong text** 

Mettre fin application en raison d'une exception non interceptée 'NSInvalidArgumentException', la raison: 'Pousser un contrôleur de navigation est pas pris en charge' est pourquoi je suis en utilisant ce une

appDelegate.newsNavController.shouldHasBackButton = YES; 
[appDelegate.window addSubview:appDelegate.newsNavController.view]; 

dois-je pousser dans la méthode définie par vous ou je peux utiliser entre lors de l'ajout de sous-vue ??

comme

AccountApplication* controller = [[AccountApplication alloc] initWithNibName:@"AccountApplication" bundle:nil]; 
     //  [self.navigationController pushViewController:controller animated:YES]; 
     //  [controller release]; 

Répondre

3

Essayez d'utiliser le push/méthodes pop de UINavigationController:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 

instad d'ajouter et de supprimer des vues de la fenêtre de votre application

MISE À JOUR:

Vous pouvez créer votre propre UINaviagtioNController dans votre applicationDélégué:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
// Override point for customization after app launch 

UIViewController *rootViewController = [[UIViewController alloc]init]; 
navigationController = [[UINavigationController alloc]initWithRootViewController:rootViewController]; 
[rootViewController release]; 

[window addSubview:[navigationController view]]; 
[window makeKeyAndVisible]; 
return YES; 

}

avec NavigationController comme @property. Essayez de créer une nouvelle "application basée sur la navigation" ou une "application de tabulation d'onglet".

+0

vérifier les mises à jour ci-dessus – ram

+0

si je pousse nouveau puis dois-je pop vieux ou juste continuer à pousser whatevr j'ai besoin ???? – ram

+0

tout UIViewController poussé est ajouté à la pile et reste là à moins que vous ne l'ajoutiez ou la pile des trous. voir Référence de la catégorie: http://developer.apple.com/iphone/library/documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html – AlexVogel

Questions connexes