- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试跨多个 View 和 seagues 保存一个 bool 值。我认为使用单例就是答案。我设置了单例类,但它仍然没有保持该值。这是我设置的单例类。
class Singleton {
static let instance = Singleton()
var data: Bool = false;
private init() { }
func SetData(value: Bool){
data = value
}
func GetData() -> Bool{
return data
}
}
这就是我要调用它的地方。默认情况下,我将 var isOn 设置为 false。如果为真,则将用户数据设置为英制系统,如果为假,则设置为公制。
//This is the function for the button that lets the user switch between the metric system and imperial system
@IBAction func switchMeasurements(_ sender: Any) {
var temperatureS: Float = Float(0)
var temperatureB: Float = Float(0)
var lakeDep: Float = Float(0)
isOn = Singleton.instance.GetData()
//Clicks the button, if isOn is true then we set the data to the imperial system.
isOn = !isOn
Singleton.instance.SetData(value: isOn)
if isOn {
....}
问题是,当他们单击更改为英制,然后单击并离开该 View 并返回到该 View 时,它会将 isOn 重置为 false 并弄乱数据。我试图让 isOn 保存,所以当他们回来时,如果他们之前选择它,它仍然会在 Imperial 上。任何提示/帮助将不胜感激。
最佳答案
你不是以类似 Swift 的方式来做的
class Singleton {
static var shared = Singleton()
var data: Bool = fasle {
get { return data }
set { data = newValue }
}
}
接下来我不明白“卷土重来”是什么意思。如果您关闭此 View /弹出到上一个 View ,那么您的问题是您在设置 subview 等时没有在 viewDidLoad 中设置 isOn
状态。如果你将 someViewController 推到你的切换器然后“回来”,那么你在某个地方改变了共享标志状态或改变 viewDidAppear
/viewWillAppear
或其他任何地方的 isOn
。所以检查这个变体
希望我有所帮助!
关于swift - 如何在swift中实现单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47082279/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!