[英]Status bar stays black even when set to light
我有與Swift中的iPad和iPhone兼容的應用程序,使用XCode 6.4支持iOS 7和8。 現在,我將應用程序結構化為主從控件,並在拆分控制器狀態欄中將其設置為淺色(白色)。 在情節提要中,所有控制器均顯示白色狀態欄(主,詳細信息,導航控制器...),但在模擬器中或iPhone / iPad中均不顯示白色,而是黑色!
我嘗試在每個控制器及其導航器控制器中設置指示燈狀態欄。 嘗試在主視圖控制器中進行設置。 嘗試添加plist選項,該選項允許我為每個視圖控制器設置(請注意,我不想為每個控制器控制狀態欄顏色,而是為應用程序設置全局顏色)。 還嘗試為狀態欄樣式設置覆蓋功能,甚至在viewDidLoad函數中設置重載功能。 沒有任何效果。
我真的被困在這里; 我以為只要在拆分控制燈狀態欄中設置,其他地方它都會繼承它(這就是它在stoyboard中的外觀)。 那我想念什么呢? 誰能幫助我,或給我一些進一步的調查提示或指示?
這是演示代碼: https : //goo.gl/U3Ynbc
提前謝謝了!
在您的Info.plist
,將“基於View Controller的狀態欄外觀”添加到YES
。
然后,在您的視圖控制器子類中,重寫此方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
確定找到了。 在plist中,將“基於視圖控制器的狀態欄外觀”設置為NO,然后在func應用程序中的appDelegate.swift中返回true之前,添加以下行:splitViewController.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
與發問者具有相同的經驗(將.storyboard中的值設置為“ Light Content”,並嘗試在多個位置針對使用splitView的應用程序更改了此值,然后在模擬器中看到statusBar前景白色),我在檢查情節提要的XML時發現它們是“模擬指標”。
當我將值UIStatusBarStyle
添加到Info.plist並將其設置為UIStatusBarStyleLightContent
(這不是顯示的選項之一),然后運行時,狀態欄樣式正確顯示。 (那是在刪除我放置在.storyboard文件中的所有模擬指標更改之后)。
如果要設置狀態欄樣式,請在應用程序級別將.plist
文件中的UIViewControllerBasedStatusBarAppearance
設置為NO
。
如果要設置狀態欄樣式,請在視圖控制器級別執行以下步驟:
.plist
文件中將UIViewControllerBasedStatusBarAppearance
設置為YES
。 在viewDidLoad中添加函數setNeedsStatusBarAppearanceUpdate
在視圖控制器中重寫preferredStatusBarStyle。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.