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