0

Alertview に UITextField があります。ここで、この UITextfield 値を別の関数で使用したいと考えています。以下の私のコードを見てください。

私のアラートビューコード:

 -(void)AlertView 
{
UIAlertView *alert = [[UIAlertView alloc] init];

alert.title = @"Used Defualt Name Or you Can Save Recoring With Your Own Name";
alert.message = @"";
alert.delegate = self;
[alert addButtonWithTitle:@"Cancel"];
[alert addButtonWithTitle:@"OK"];   
myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 82.0, 260.0, 25.0)];
[myTextField setBackgroundColor:[UIColor whiteColor]];
[alert addSubview:myTextField];
[alert show];
[alert release];

 }
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {

NSLog(@"name:%@   buttonID:%d",myTextField.text,buttonIndex);
if (buttonIndex == 1) {
    btnPlay.enabled=YES;

    mySongname = myTextField.text;
     NSLog(@"song name:%@  ",mySongname);
}
else {
   btnPlay.enabled=YES;
}
}

変数 mysongname をクラスのグローバルとして宣言します。これは、以下の関数で alertview があるのと同じ場所で使用するためです。

-(IBAction)playButton:(id)sender
{ 
 // mySongname=@"my fourite songs";
  NSString *fina = [NSString stringWithFormat:@"%@",mySongname];
}

上記の関数 mysongname では、範囲外の値が表示されますが、上記の関数で表示されているコメントを削除すると、正常に機能します。ここで UITextfield を渡さない理由がわかりません。

4

2 に答える 2

2

プロパティを設定して mySongname に合成し、self.mySongname = myTextField.text; を使用して値を設定してみてください。

于 2012-12-04T11:31:50.153 に答える
0

文字列オブジェクトを宣言してその値を設定し、その値をクラスのアラート ビューに使用するだけです。

于 2012-12-11T12:41:45.340 に答える