0

这有点令人困惑,但我会尽力解释它,我希望它会好起来。

我正在尝试在 iOS 中创建以下功能:

我在 tableview 的每一行都有红色按钮。红色按钮被拖放到(原型)tableViewcell 上,并且在每一行中都将使用该按钮。按钮文本显示华氏温度。但是当点击时它会发生变化,因此按钮的颜色会变为绿色。我现在想要额外的功能;华氏温度将变为摄氏度。(我有这个功能的问题)

这里的问题是我有一个 tableviewcells 列表(每个都是另一个城市),而不仅仅是一个。所以我有这么多按钮,我不使用数据库来保存温度数据。数据通过服务读取并放入数组并由 NSUserDefaults 传输到此视图。

例如; 我的表格视图中有一个城市列表。每个都是一行,每个温度都放在一个红色按钮上。温度值是红色按钮的文本。

  1. 柏林 45F
  2. 伊斯坦布尔 70F
  3. 迈阿密 100F
  4. 芝加哥 30F

...ETC。

因此,例如,当我点击柏林行上的按钮将华氏温度更改为摄氏度时,第一次没有问题,所以我可以获得柏林的摄氏度值,没问题。但是当我下次点击它再次将其更改为华氏度时,该值不正确。柏林的华氏度值与其他值混淆。因为我不使用数据库,它确实从数组中读取值并且它不知道要使用哪个值。一些点击后,所有华氏值都变成一个值,这是最后一个城市的华氏值(我使用 indexPath.row 所以它得到最后点击的值)

如何在不使用数据库的情况下维护柏林的温度数据,以便在点击其他城市的按钮后再次点击该数据时,它会显示正确的值(45F 或正确的摄氏度值)?

谢谢你的帮助!

4

1 回答 1

0

虽然我建议您使用某种形式的基于键的存储(例如创建一个存储温度的“城市”类,甚至将城市 -> 温度键组合存储在字典中),但您可以在单击它时阅读按钮文本并将值从 NSString 转换回双精度或整数。
我假设单击按钮时调用的函数看起来像我要编写的函数。然后,您可以获得单击的按钮及其显示的文本,如下所示:

- (IBAction)convertTemperature:(id)sender {
    UIButton *myButton = (UIButton *)sender;
    NSString *buttonText = [myButton titleForState:UIControlStateNormal];
    //...
}

在此之后,您只需转换字符串以获取温度,将其转换并显示回来。

于 2013-01-03T19:21:34.460 回答