我正在制作小费计算器,并且要求设置页面与计算器一起使用。在计算器中,当选择每个选项时,分段控件实现三个选项,尖端的值和总变化的值。在我的设置标签中,我希望能够让用户保存默认的提示百分比。我知道我需要使用NSUserdefaults,但是我不知道如何使用两个不同的页面(或者就此而言一页)。如果我想要达到的目标不清楚,请告诉我,我已尽力解释。
以下是视图控制器的代码:
@IBAction func onEditingChanged(sender: AnyObject) {
var tipPercentages = [0.18, 0.2, 0.22]
let tipPercentage = tipPercentages[tipControl.selectedSegmentIndex]
let billAmount = billField.text!._bridgeToObjectiveC().doubleValue
let billAmt = billAmount
let tip = billAmt * tipPercentage
let total = billAmt + tip
tipLabel.text = String(format:"$%.2f", tip)
totalLabel.text = String(format:"$%.2f", total)
}
以下是我对settingsViewController的了解:
import UIKit
class SettingsViewController: UIViewController {
@IBOutlet weak var defaultTipControl: UISegmentedControl!
@IBAction func actDefaultTipCont(sender: AnyObject) {
var tipPercentages = [0.18, 0.2, 0.22]
var tipPercentage = [defaultTipControl.selectedSegmentIndex]
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(tipPercentage, forKey: "tippingDefault")
defaults.setInteger(123, forKey: "tippingInteger")
defaults.synchronize()
}
我刚刚使用settingsViewController试图让它工作,它可能都必须重做。以下是两个不同页面的视图图片:
提前感谢您的帮助!
答案 0 :(得分:0)
要保存然后检索数据,您需要执行以下操作:
let valueToSave = tipAmount;
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(valueToSave, forKey: "tipAmount")
然后检索它并在主控件上使用它(例如)执行此操作:
let defaults = NSUserDefaults.standardUserDefaults()
tipAmount = defaults.objectForKey("tipAmount")
valueForKey方法返回之前在该键中保存的内容
NSUserdefaults基本上只是一个字典,可以在不同的启动时保留,所以只需检查是否保存了特定密钥的值来访问它