0

我是 iPhone 开发的新手,所以如果这是一个荒谬的问题,我深表歉意。

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

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

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

我在 didSelectRow 事件中有正确的代码,只要我开始旋转选择器的组件轮,该部分就可以工作,所以我想我会采用该代码并将其放入一个函数中,该函数将具有一个参数,即 row 和这个函数然后将从传递行参数的 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. 如何获取选择器的当前选择行,以便在单击“返回”按钮时发生“退出时结束”事件时将其传递给此函数。

谢谢

T。

4

1 回答 1

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];

}

并在您点击返回时调用此方法。我希望这可以帮助你。

〜马诺伊

于 2011-06-26T04:07:29.997 回答