通过按钮操作获取设置

时间:2010-05-11 21:16:09

标签: iphone cocoa-touch uikit nsuserdefaults

我正在寻找通过按钮操作访问用户设置(我假设,NSUserDefaults?)的方法。让我备份并解释一下。我现在拥有的是2个TextFields标签和一个按钮。用户将在2个TextFields中键入测量值。当他们点击按钮时,标签会以加仑显示测量对象的体积。这部分效果很好。

然后我想让用户选择以升数而不是加仑输出音量。我还想让用户选择以厘米为单位输入测量值。所以我设置了一个'Settings.Bundle'并用2'多值'单元格(测量单位和体积单位)配置它。每个多值单元格都有自己的用户可以选择的不同单位列表。

我的主要问题是我不知道如何通过按钮操作访问这些设置。我可能会想到这个错误,但我正在寻找的是类似的东西;

Button Action
    If settings key = 0  
     Then do the math in Inches, Display in Gallons  
    If settings key = 1  
     Then do the math in Centimeters, Display in Gallons  
    If settings key = 2  
     Then do the math in Inches, Display in Liters  
    If settings key = 3  
     Then do the math in Centimeters, Display in Liters  
Etc...  

这可能吗? 我是以错误的方式想到这个吗? 最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

在模型中,您应将值存储在一种测量单位中。根据使用的单位,您不会以不同的方式“进行数学运算”,计算总是相同的。您只需要接受并显示不同类型的单位。

要显示和接受这些值,您的文本字段应使用NSValueTransformerNSValueTransformer的子类允许您显示值的转换版本,并可选择反转输入值的转换。因此,如果您的模型以厘米为单位存储值,则使用将厘米转换为英寸的NSValueTransformer,并使用-reverseTransformValue:方法将英寸转换为厘米。因此,当用户以英寸为单位键入值时,该值将以厘米为单位存储在模型中。

在您的情况下,您的NSValueTransformer需要使用NSUserDefaults中存储的当前单位设置来更改其转换单位的方式。