简单的iOS从UIAlertView收集字符串

时间:2013-09-19 05:02:07

标签: iphone ios string nsstring uialertview

我正在尝试将数据发布到数据库,但问题是我似乎无法从用户那里获取在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 个答案:

答案 0 :(得分:5)

您需要使用UIAlertViewDelegate方法接收电子邮件:

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

答案 1 :(得分:2)

您尝试在用户输入该值之前获取该值,甚至在向用户显示警报视图之前。

UITextField *emailInput = [alertView textFieldAtIndex:0];

使用委托方法,然后尝试获取这样的值。

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

您还错过了包含此行

alertView.delegate = self;

并且不要忘记在.h文件中确认协议UIAlertViewDelegate,如下所示

@interface yourViewController : UIViewController<UIAlertViewDelegate>

否则它不会调用委托方法。

希望这会对您有所帮助。

答案 2 :(得分:0)

您已为UIAlertview分配了内存。因此,在文本字段中,您没有任何文本。所以你没有得到任何文字。使用UIAlertVIew委托方法。在那里访问文本域文本。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{
   NSLog(@"textfield text is %@",[alertView textFieldAtIndex:0].text);
}

答案 3 :(得分:0)

请使用UIAlertviewDelegate及其委托方法

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

}