嘿,伙计们,在我的应用程序中,用户点击了一个名为showfunfact()的按钮,该按钮通过一个字符串数组移动他们。当用户从多任务中删除应用程序或关闭手机时,我希望保存用户所在的位置,然后当重新加载时,可以从中断的位置取回
var TechfactIndex = 0
let TechnologyfactBook = TechFactBook()
override func viewDidLoad() {
super.viewDidLoad()
let defaults = NSUserDefaults.standardUserDefaults()
TechfactIndex = NSUserDefaults.standardUserDefaults().integerForKey("ByteLocation")
defaults.setObject(TechfactIndex, forKey: "ByteLocation")
}
@IBAction func showFunFact() {
if ( UIApplication.sharedApplication().applicationIconBadgeNumber != 0){
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
}
if (TechfactIndex >= TechnologyfactBook.TechfactsArray.count) {
self.TechfactIndex = 0
}
TechByteLabel.text = TechnologyfactBook.TechfactsArray[TechfactIndex]
TechfactIndex++
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
NSUserDefaults.standardUserDefaults().setInteger(TechfactIndex, forKey: "ByteLocation")
NSUserDefaults.standardUserDefaults().synchronize()
}
最佳答案
问题是viewDidDisappear:
与你的规格无关,它不是“当用户从多任务中删除应用程序或关闭手机时”。电话铃响时不叫它。当用户点击home按钮时不调用它。这无关紧要。你把代码放错地方了。
你要做的是在应用程序停用时注册收听。这是将信息写入用户默认值的时刻。