0

私はiPhoneの開発に慣れていないので、これがばかげた質問である場合はお詫びします。

為替レートUIPickerを作成する本のサンプルをフォローしています。エントリのいずれかを選択すると、選択した通貨への米ドルの換算が表示されます。

ピッカーから値を変更する前に、ラベルの値を更新したい。

初めてテキストボックスに米ドルの値を入力して[戻る]ボタンをクリックすると、ラベルが更新され、ピッカーで現在選択されている通貨で同等の値が表示されます。

didSelectRowイベントに正しいコードがあり、ピッカーのコンポーネントホイールを回転させ始める限り、その部分は機能するので、そのコードを取得して、1つのパラメーター(行とこの関数)を持つ関数に配置すると思いました。次に、行パラメーターが渡される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];

テキストボックスの「終了時に終了」イベントが発生したときにこの関数を呼び出しますが、2つの問題が発生しています。

  1. 関数を書く正しい方法は何ですか。関数の記述方法に関係なく、さまざまなエラー/警告が表示されます

  2. ピッカーの現在選択されている行を取得して、[戻る]ボタンをクリックしたときに[終了時に終了]イベントが発生したときにこの行に渡すことができるようにするにはどうすればよいですか。

ありがとう

T。

4

1 に答える 1

0

よくわかりませんが、ここで何をしようとしているのかを完全に理解しました。しかし、それでも私はあなたがここでできることを進めています:

まず最初に、didSelectRowデリゲートメソッドが呼び出されるたびに行インデックスを格納するint型のクラス変数を宣言します。その間に、次のようなメソッドを作成します。

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

}

Returnキーを押したときにこのメソッドを呼び出します。これがお役に立てば幸いです。

〜マノジ

于 2011-06-26T04:07:29.997 に答える