2013-09-27 27 views
5

當我從模態視圖控制器回到我的主視圖控制器(我有一個水平動畫)時,我的主控制器導航欄本身稍微高了一秒,然後跳回到正確的位置。有人知道爲什麼嗎?我一直在使用Google,但沒有成功。爲什麼當我在iOS 7中取消模態視圖時,導航欄暫時消失?

應用代表:

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

當我按下按鈕,打開我的資料查看:

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

我沒有任何XIB-文件中使用自動佈局。狀態欄:默認狀態下,我的主視圖控制器xib文件爲空。我的信息視圖控制器xib文件有一些東西在裏面。

代碼關閉我的模態視圖控制器:

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

你叫[[UIApplication的sharedApplication ] setStatusBarHidden:是/否]在任何點? –

+0

不! :/那就是爲什麼我很困惑 – Jojo

+0

我們將需要更多的上下文。發佈一些代碼。你怎麼解僱視圖控制器?你在使用AutoLayout嗎?如果是這樣,你的約束是什麼? –

回答

-1

的問題似乎是

infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

如果您更改爲

infoViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

那麼它將不再跳。這對我有效。祝你好運!

3

所有你所要做的就是添加以下代碼在viewWillAppear中的「InfoViewController」的viewController類

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

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

希望它與你:)工作的