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 を渡さない理由がわかりません。