2013-09-27 7 views
5

Wenn ich von meinem Modal View Controller zu meinem Main View Controller zurückgehe (ich habe eine horizontale Animation), plaziert sich meine Main Controller Navarder für eine kurze Sekunde etwas zu hoch und springt dann zurück zur richtigen Position. Weiß jemand warum? Ich habe es gegoogelt, aber ohne Erfolg.Warum verschwindet meine Navigationsleiste vorübergehend, wenn ich eine modale Ansicht in iOS 7 verwarne?

App Delegierter:

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

Wenn i-Taste drücken meine Info-Ansicht zu öffnen:

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

Ich bin nicht Auto-Layout auf allen xib-Dateien. Die XIB-Datei des Hauptansicht-Controllers ist leer mit Statusleiste: Standard. Mein Info View Controller xib-file hat ein paar Sachen drin.

-Code meine Modal-View-Controller zum Schließen:

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

rufen Sie [[UIApplication shared ] setStatusBarHidden: JA/NEIN] zu irgendeinem Zeitpunkt? –

+0

Nein! :/deshalb bin ich verwirrt – Jojo

+0

Wir werden mehr Kontext benötigen. Veröffentlichen Sie einen Code. Wie verwerfen Sie den View-Controller? Verwenden Sie AutoLayout? Wenn ja, was sind Ihre Einschränkungen? –

Antwort

-1

Das Problem scheint

infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

zu sein, wenn du dieses

infoViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

zu ändern, dann wird es nicht mehr springen. Das hat für mich funktioniert. Viel Glück!

3

Alles was Sie tun müssen, ist den folgenden Code in der ViewWillAppear der „InfoViewController“ Viewcontroller Klasse hinzufügen

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

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

Hoffe, dass es mit Ihnen gearbeitet :)

Verwandte Themen