2013-09-27 12 views
5

Kiedy wracam z mojego kontrolera widoku Modal do kontrolera głównego (mam poziomą animację) mój kontroler główny kontrolera jest nieco za wysoki na sekundę, a następnie wraca do swojej właściwej pozycji. Czy ktoś wie, dlaczego? Szukałem go, ale bez powodzenia.Dlaczego pasek nawigacji tymczasowo znika, gdy odrzucam widok modalny w systemie iOS 7?

Delegat App:

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

Kiedy przycisk, aby otworzyć mój Info Widok pchania:

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

nie używam Auto Layout na wszelkich XIb-Files. Mój główny widok Sterownik xib-file jest pusty z Paskiem stanu: Domyślny. Moje informacje Zobacz kontroler Xib-file zawiera kilka rzeczy.

Kod do zamykania mój Modal View Controller:

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

dzwonisz [[UIApplication sharedApplication ] setStatusBarHidden: YES/NO] w jakimś punkcie? –

+0

Nie! :/to dlatego jestem zdezorientowany – Jojo

+0

Będziemy potrzebować więcej kontekstu. Opublikuj kod. W jaki sposób odwołujesz kontroler widoku? Czy korzystasz z AutoLayout? Jeśli tak, jakie są twoje ograniczenia? –

Odpowiedz

-1

Problem wydaje się być

infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

Jeżeli zmienisz to

infoViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

wtedy nie będzie już skakać. To działało dla mnie. Powodzenia!

3

Wszystko, co musisz zrobić, to dodać następujący kod w ViewWillAppear klasy "InfoViewController" viewController

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

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

nadzieję, że pracował z wami :)

Powiązane problemy