我对 swift 比较陌生,慢慢来。
下面是我的代码:
let defaultName = UserDefaults.standard
override func viewDidLoad() {
super.viewDidLoad()
let getTheme = defaultName.integer(forKey: "theme") as Int
if getTheme == 1{
self.performSegue(withIdentifier: "darkVC", sender: self)
}else
if getTheme == 2{
self.performSegue(withIdentifier: "lightVC", sender: self)
} else {
//Do nothing
}
}
@IBAction func theme_Selection(_ sender: UIButton) {
defaultName.set(sender.tag, forKey: "theme")
}
View Controller :
我试图在我的 UserDefaults 中保存用户选择(深色或浅色)并转到相应的 Viewcontroller。不幸的是,它确实保存了 UserDefault 并不断返回到这个 Viewcontroller 以供用户选择。
我已将按钮标记为 1 和 2,并将它们分组到 @IBAction func theme_Selection
有什么想法我在这里错过了什么吗? 提前感谢任何解决方案。
最佳答案
不可能在 viewDidLoad
中执行 performSegue
。该 View 尚未附加到窗口。尝试将您的实现移动到 viewDidAppear
。
关于swift - 默认转至 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51080188/