我需要将uialertview与textfield一起使用,以便将输入的文本传递给webservice集成,同时应用程序正在运行带有textfield的alertview,并且可以在textfield中输入文本,但是在单击提交按钮时,相应的类崩溃但后退按钮和整个应用程序运行良好。
我用于带文本字段的alertview的代码,
{
//alertview with textfield
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Enter your changes"
message:nil
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Submit Changes", nil];
[message setAlertViewStyle:UIAlertViewStylePlainTextInput];
[message show];
}
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1)
{
text = [[alertView textFieldAtIndex:0] text];
NSLog(@"passed value %@",text);
}
}
答案 0 :(得分:1)
您可能正在声明对象超出范围,当您尝试访问不再存在的对象时会导致崩溃。更多代码将是有用的
答案 1 :(得分:0)
该代码放在哪里?没有更多的背景,这两个猜测是在黑暗中拍摄,但它们是常见的陷阱。
我的第一个猜测是,当对话框关闭时,这个对象(它是警报视图的委托)已经死了。并且委托被分配,因此将在死对象上调用它,导致崩溃。
另一个可能的原因是您的代码属于类方法,即+(void)showMessage;
。然后将委托设置为类而不是对象,这也应该触发崩溃。