2012-05-24 37 views
0

我的控制器主視圖呼叫在UINavigationBar的高度被重新enteringforeground後減少

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES]; 

viewDidAppear方法,因爲屏幕必須手動旋轉給用戶。

除了當我將應用程序放在背景中並且我在此屏幕上重新輸入前景時,一切都可以完美運行:然後navigationBar的高度變爲32px。

如果我評論setStatusBarOrientation來電,那就沒問題。

我已經在didEnterForeground方法(在超級調用之後)中記錄了導航條的高度,但它告訴了44px。所以我想它會在之後調整大小

所以我想知道:

  • 如果有辦法阻止的導航欄被調整
  • 如果沒有,就會得出什麼其他的回調方法後didEnterForeground一個(viewWill/DidAppear一點兒也不)

謝謝!

回答

2

4個月後,我終於找到了部分解決方案!

  • 如果沒有,就會得出什麼其他的回調方法didEnterForeground一個後(viewWill/DidAppear一點兒也不)

我找到了一個很好的回調時,的viewController(不應用代表)正在重新進入前臺。隨着NSnotificationCenter

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; 

不要忘記刪除

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillEnterForegroundNotification object:nil]; 
+0

好像是唯一的解決方案給我。 你有沒有偶然發現過其他方法? – n00bProgrammer

+0

沒有,但自iOS7以來沒有搜索過 – Martin