第一次加载视图时,根据选择器值更新标签

时间:2011-06-26 03:13:25

标签: iphone row uipickerview picker didselectrowatindexpath

我是iPhone新手,我很抱歉这是一个荒谬的问题。

我正在关注创建汇率UIPicker的图书中的样本,当您选择其中一个条目时,它会显示美元兑换为所选货币的转换。

我希望在开始更改选择器中的值之前,在我的标签中更新值。

我第一次在文本框中输入我的美元价值并单击“返回”按钮,我希望标签更新并以选择器中当前选择的任何货币显示其等价值。

我在didSelectRow事件中有正确的代码,只要我开始旋转拾取器的组件轮,那部分就可以工作了,所以我想我会把它放在一个函数中,它会有一个参数即行然后从didSelectRow调用此函数,其中行参数将被传递,然后我将:

这是来自didSelectRow的代码:

float rate = [[exchangeRates objectAtIndex:row] floatValue];
float dollars = [dollarText.text floatValue];
float result = dollars * rate;

NSString *resultString = [[NSString alloc] initWithFormat:@"%.2f USD = %.2f %@", dollars, result, [countryNames objectAtIndex:row]];

resultLabel.text = resultString;
[resultString release];

当文本框中的“退出时结束”事件时调用此函数,但我遇到两个问题:

  1. 编写函数的正确方法是什么。无论我编写函数的方式是什么,我都会收到各种错误/警告

  2. 如何获取选择器的当前选择行,以便当我单击“返回”按钮时出现“退出时结束”事件时,我可以将其传递给此功能。

  3. 由于

    吨。

1 个答案:

答案 0 :(得分:0)

我不确定,我完全理解你到底想要做什么。但是我仍在继续你能做的就是:

首先声明一个int类型的类变量,它将在调用didSelectRow委托方法时存储行索引,平均时间创建一个方法,如:

  

- (void)updateLabel:(int)rowIndex

{

float rate = [[exchangeRates objectAtIndex:row] floatValue];
float dollars = [dollarText.text floatValue];
float result = dollars * rate;

NSString *resultString = [[NSString alloc] initWithFormat:@"%.2f USD = %.2f %@",       dollars, result, [countryNames objectAtIndex:rowIndex]]; // here it will go rowIndex which is the row value you stored in your variable



resultLabel.text = resultString;
   [resultString release];

}

并在点击返回时调用此方法。 我希望这会对你有所帮助。

〜马诺吉