我有一個視圖控制器,顯示全屏幕,從視圖控制器可以呈現另一個模態VC,模態VC需要狀態欄,但解除模態VC控制器後,基本VC有狀態欄頂部的空間甚至我設置:iOS:解除需要狀態欄的模態VC後如何隱藏狀態欄?
[[UIApplication sharedApplication] setStatusBarHidden:YES]
狀態欄隱藏,但空間仍然存在,而且我查了基礎VC的視圖的框架,它從0開始,我不認爲我應該使其y座標從-20開始,但我還能做什麼?
感謝
我有一個視圖控制器,顯示全屏幕,從視圖控制器可以呈現另一個模態VC,模態VC需要狀態欄,但解除模態VC控制器後,基本VC有狀態欄頂部的空間甚至我設置:iOS:解除需要狀態欄的模態VC後如何隱藏狀態欄?
[[UIApplication sharedApplication] setStatusBarHidden:YES]
狀態欄隱藏,但空間仍然存在,而且我查了基礎VC的視圖的框架,它從0開始,我不認爲我應該使其y座標從-20開始,但我還能做什麼?
感謝
嘗試了這一點:
[[UIApplication sharedApplication] setStatusBarHidden:NO];
self.view.frame = [[UIScreen mainScreen] applicationFrame];
從上applicationFrame文檔:
此屬性包含屏幕邊界減去 佔據了狀態欄的區域,如果它是可見的。使用此屬性是 推薦的方式來檢索您的應用程序的初始窗口大小。 矩形用點表示。
要獲得更強大的解決方案,請更改您的框架以響應狀態欄框架更改。您的應用程序委託子類可以實現:
-application:willChangeStatusBarFrame:
-application:didChangeStatusBarFrame:
或者,您可以爲這些通知使用NSNotificationCenter註冊:
我試過你的方法,但它不適合我,我用這種方式解決了這個問題,當模態VC撤銷時,在基地VC的我需要:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
self.wantsFullScreenLayout = YES;
[self.view layoutSubviews];
我知道這是不是一個很好的解決方案,但它是我目前想到的唯一的事情,無論如何感謝您的幫助。
謝謝我會嘗試一下。 – hzxu 2013-03-18 02:44:50