2010-10-18 71 views
0

我有一個UIViewController的視圖是一個嵌入式電影的UIWebView。當電影正在全屏播放,並且設備被旋轉時,在電影被解散之後,標題欄結束在狀態欄後面。爲何會發生這種情況?爲什麼旋轉後標題欄出現在狀態欄後面?

alt text

+0

我有完全相同的問題。你解決了嗎?謝謝。 – nonamelive 2012-06-06 03:21:12

回答

0

沒有你autoresizingMask上的UIWebView

webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | 
             UIViewAutoresizingFlexibleWidth); 

-(BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation 
{ 
    return YES; 
} 
+0

是的。狀態欄後面的視圖是UINavigationController的視圖。它由UINavigationController代碼自動加載。另外,當電影不播放時旋轉設備時不會發生。當設備處於「不良」狀態時旋轉設備,它會自行糾正。 – richcollins 2010-10-18 22:43:57

1

原來,當視頻開始視圖控制器的視圖的動畫沒有完成。這導致它通過視頻播放器視圖重新顯示。

+0

你是如何修復它的?我有完全相同的問題....謝謝! :) – Sid 2011-03-04 19:09:34

+0

動畫完成後開始播放視頻 – richcollins 2011-03-13 08:20:09

1

我的解決辦法:

(void)viewDidLoad 
{ 
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; 
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; 
    [UIApplication sharedApplication].keyWindow.frame=CGRectMake(0, 20, 320, 460); 
    self.navigationController.navigationBar.hidden=NO; 
} 
0

這是沒有辦法解決使用MPMoviePlayerNotification這個問題,因爲UIWebView的視頻,請不要使用MPMoviePlayerViewController或者它是私有的開發商。 但是,還有另一種方法來解決這個錯誤。

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(handleStatusBarFrameDidChange) 
              name:UIApplicationDidChangeStatusBarFrameNotification 
              object:nil]; 

- (void)handleStatusBarFrameDidChange { 
    self.navigationController.navigationBarHidden = YES; 
    self.navigationController.navigationBarHidden = NO; 
}  
相關問題