通过使用UI按钮

时间:2016-06-10 09:34:36

标签: xcode swift

我正在创建一个允许用户更改主题的应用程序,例如。改变背景颜色。假设我有一个按钮,当点击时,切换背景颜色的变化。

EG。在代码中:

@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()似乎不会更新状态栏样式。我有一些自定义函数,如下所述。

我的自定义保存功能:

saveFloodlightOption(bool: Bool) 
  • 使用NSUserDefaults保存布尔值。

我的主题配置功能:

configureFloodLight(bool: Bool)
  • 这只是改变对象'视图控制器中的颜色基于所选主题。

我希望我提供足够的信息,谢谢!

1 个答案:

答案 0 :(得分:1)

您是否已在info.plist中将View Controller Based Status bar appearance设为false

View Controller Based status bar appearance