2016-07-29 87 views
0

我在启动时出现UISwitch的状态问题。为什么我的switch总是处于on状态?检查UISwitch状态viewDidLoad

@IBOutlet weak var switch: UISwitch! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    if let sw = switch { 
     if sw.on { 
      print("on") 
     } else { 
      print("off") 
     } 
    } 
} 
+0

你把它在你的故事板? –

+0

为什么你让一个部队解包可选? –

+0

@AndréMuniz你在故事板中设置了什么?其在故事板中的状态为ON。 – Done

回答

1

该开关将是您在故事板/界面构建器中设置的任何内容。如果您在故事板中将其设置为开启,它将始终在应用第一次加载时开启,反之亦然,将其设置为关闭。

如果你想它时,您的视图首次加载(编程),不管什么在故事板设置的,使用switch.on = false

如果您希望在应用程序被关闭,以节省交换机的状态设置为关闭,你应该看看NSUserDefaults的使用(here

这里是故事板设置的状态截图:

enter image description here

+0

我正在做一些实验,发现如果你把viewWillAppear它会正常工作,因为我想。不知道为什么... – Done