2

データベースにデータを投稿しようとしていますが、ユーザーから UIAlertView に入力されたテキストを取得できないように見えるという問題があります。UITextField をサブビューするなど、多くの解決策を試しましたが、うまくいきませんでした。これが私の現在の単純な構成です。さらに情報が必要な場合はお知らせください。

- (void)viewDidLoad
{
    [super viewDidLoad];

    //load site in webview
    NSURLRequest *siteRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://google.com/"]
                                                  cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
                                 [webview loadRequest:siteRequest];


    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@"Please enter your email address." delegate:self cancelButtonTitle:@"Submit" otherButtonTitles:@"Skip", nil];
    alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
    UITextField *emailInput = [alertView textFieldAtIndex:0];
    [alertView show];

    emails=emailInput.text;

  //  NSLog(emails);


    phone=@"8675309";

    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
4

4 に答える 4

5

UIAlertViewDelegateメソッドでメールを取得する必要があります。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    UITextField *emailInput = [alertView textFieldAtIndex:0];
    NSLog(@"%@",emailInput.text);
}
于 2013-09-19T05:06:57.567 に答える
2

ユーザーが入力する前、およびアラート ビューがユーザーに表示される前であっても、値を取得しようとしています。

UITextField *emailInput = [alertView textFieldAtIndex:0];

デリゲート メソッドを使用して、次のように値を取得してみてください。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    UITextField *emailInput = [alertView textFieldAtIndex:0];
}

この行を含めることも忘れました

alertView.delegate = self;

UIAlertViewDelegateこのように.hファイルのプロトコルを確認することを忘れないでください

@interface yourViewController : UIViewController<UIAlertViewDelegate>

それ以外の場合、デリゲート メソッドは呼び出されません。

これがあなたを助けることを願っています。

于 2013-09-19T05:20:43.760 に答える