2013-09-27 18 views
5

Quando torno dal mio controller di visualizzazione modale al mio controller di visualizzazione principale (ho un'animazione orizzontale) la mia barra di navigazione principale si posiziona un po 'troppo alta per un secondo veloce e poi torna alla sua posizione corretta. Qualcuno sa perché? Ho cercato su google, ma senza successo.Perché la barra di navigazione scompare temporaneamente quando ignoro una vista modale in iOS 7?

App Delegato:

[navigationController.navigationBar setBarTintColor: [UIColor whiteColor]]; 
[navigationController.navigationBar setTranslucent: NO]; 

quando spingo pulsante per aprire il mio Informazioni Vista:

UIViewController *infoViewController; 
infoViewController = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle: nil]; 
infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentViewController: infoViewController animated: YES completion:nil]; 

non sto usando Layout Automatico su tutti XI ter-files. Il file xib di My Main View Controller è vuoto con Status Bar: Default. My Info View Controller xib-file contiene alcune cose.

Codice per chiudere il mio modale View Controller:

-(IBAction)onBackBtnClick:(id)sender 
{ 
    [self dismissModalViewControllerAnimated: YES]; 
} 
+0

stai chiamando [[UIApplication sharedApplication ] setStatusBarHidden: YES/NO] in qualsiasi momento? –

+0

No! :/ecco perché sono confuso – Jojo

+0

Avremo bisogno di più contesto. Pubblica un po 'di codice. Come stai ignorando il controller di visualizzazione? Stai usando AutoLayout? Se sì, quali sono i tuoi vincoli? –

risposta

-1

Il problema sembra essere

infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

Se si cambia questo per

infoViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

allora non è più salterà. Questo ha funzionato per me. In bocca al lupo!

3

Tutto quello che dovete fare è aggiungere il seguente codice nella viewWillAppear della classe "InfoViewController" viewController

-(void) viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 

    [self.navigationController.navigationBar setTranslucent:NO]; 
    [self.navigationController.navigationBar.layer removeAllAnimations]; 
} 

Speranza ha funzionato con voi :)

Problemi correlati