2011-03-17 6 views
1

J'ai l'authentification par mot de passe pour mon application. Mon application est basée sur une fenêtre. J'ai cinq vue: MyApplicationAppDelegate, MainViewController, HelpViewController, SettingViewController et ErrorViewController.Comportement incohérent de ApplicationWillEnterForeground

Lorsque l'application démarre, je navigue à MainViewController. J'ai deux boutons sur la barre d'outils pour l'aide et le réglage qui dirigent vers les pages respectives. Maintenant, je l'ai écrit code suivant dans MyApplicationAppDelegate:

- (void)applicationWillEnterForegroundUIApplication *)application { 

[self showMyView]; 

} 


-(void)showMyView{ 
if (![Global timeSet]) { 


if (errorviewFlag) { 
if (![Global show]){ 
ErrorPageViewController *bViewController = [[[ErrorPageViewController alloc] 
initWithNibName"ErrorPageViewController" bundle:[NSBundle mainBundle]] autorelease]; 

[self setError:bViewController]; 
self.error = bViewController; 
//[window addSubview:[error view]]; 

[[self navigationController] pushViewController:bViewController animated: NO]; 
UIBarButtonItem *_backButton = [[UIBarButtonItem alloc] initWithTitle"Back" style:UIBarButtonItemStyleDone target:nil action:nil]; 
[self.navigationController setNavigationBarHidden:YES]; 
[self.navigationController setToolbarHidden:YES]; 

[_backButton release], _backButton = nil; 
[window makeKeyAndVisible]; 
errorviewFlag=FALSE; 
[Global setShow:TRUE]; 
} 
} 
} 
} 

maintenant, cette méthode est appelée pour tous les temps, sauf la première.

Le problème est cela ne fonctionne que de manière souhaitée, à savoir montre ErrorPage, quand je réduis l'application de MainView. Si je minimise de l'aide ou du réglage, il ne montre pas la page d'erreur, mais plutôt la page principale sans contrôles de navigation. Pourquoi?

+0

Si vous avez besoin d'autres détails, s'il vous plaît demander –

Répondre

0

Il a pu trouver la réponse. J'ai utilisé NSNotificationcenter avec didEnterBackground. Je l'ai utilisé dans toutes les autres vues que MainView. Et dans ma méthode didEnterBackground j'ai utilisé [self.navigationController popViewControllerAnimated:NO];

Cela a forcé toutes les autres vues à venir à MainView lorsque l'application est minised et cela a résolu le problème.

Questions connexes