簡體   English   中英

即使設置為亮,狀態欄仍保持黑色

[英]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

如果要設置狀態欄樣式,請在視圖控制器級別執行以下步驟:

  1. 如果僅需要在UIViewController級別設置狀態欄樣式,則在.plist文件中將UIViewControllerBasedStatusBarAppearance設置為YES
  2. 在viewDidLoad中添加函數setNeedsStatusBarAppearanceUpdate

  3. 在視圖控制器中重寫preferredStatusBarStyle。

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

根據狀態欄樣式設置級別設置.plist的值。 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM