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 回答
0

您已经为 UIAlertview 分配了内存。所以在文本字段中你最初没有任何文本。所以你没有得到任何文本。使用 UIAlertVIew 委托方法。在那个访问文本字段文本。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{
   NSLog(@"textfield text is %@",[alertView textFieldAtIndex:0].text);
}
于 2013-09-19T05:12:37.177 回答
0

请使用 UIAlertviewDelegate 及其委托方法

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{
    UITextField *emailInput = [alertView textFieldAtIndex:0];
    NSLog(@"Email Text is %@",emailInput.text);

}
于 2013-09-19T05:13:05.897 回答