0
我正在製作一個允許用戶更改主題的應用程序,例如。改變背景顏色。假設我有一個按鈕,當點擊時,切換背景顏色的變化。使用UIbutton更新狀態欄外觀(在lightContent和默認值之間切換)
例如,在代碼:
@IBAction func floodLightAction(sender: AnyObject) {
previousFloodlightOption = loadFloodlightOption()
if previousFloodlightOption {
print("OFF")
saveFloodlightOption(false)
// configure theme for themeViewController:
UIApplication.sharedApplication().statusBarStyle = .Default
setNeedsStatusBarAppearanceUpdate()
configureFloodlight(false)
} else {
print("ONN")
saveFloodlightOption(true)
// configure theme for themeViewController:
UIApplication.sharedApplication().statusBarStyle = .LightContent
setNeedsStatusBarAppearanceUpdate()
configureFloodlight(true)
}
然而,setNeedsStatusBarAppearanceUpdate()似乎並沒有按下按鈕時更新狀態欄的風格。我有幾個自定義函數,下面會解釋。
我自定義的保存FUNC:
saveFloodlightOption(bool: Bool)
- 這節省NSUserDefaults的使用一個布爾值。
我的主題配置FUNC:
configureFloodLight(bool: Bool)
- 這只是改變對象的顏色的基礎上,主題視圖控制器採摘。
我希望我給了足夠的信息,謝謝!
謝謝!!!!!我不知道我必須這樣做。我還是新的。 –
沒問題!感謝upvote並接受:) –
嗨我實際上有一個問題。如何重寫preferredStatusBarStyle不起作用?例如:覆蓋FUNC preferredStatusBarStyle() - > UIStatusBarStyle { 如果previousFloodlightOption { 返回UIStatusBarStyle.Default }否則{ 返回UIStatusBarStyle.LightContent } } –