我是iPhone开发人员的新手,
我想一个接一个地实现两个警报视图,比如当用户按下删除按钮时,第一个警报视图会问Are you sure want to Delete ?有两个按钮yes和no。
现在,如果用户按下yes,那么第二个警告视图将伴随消息Deleted Successfully ! --这个警告视图只包含OK按钮,现在单击这个OK按钮,我想调用一个方法。
如果用户按下No,那么什么都不应该发生,警报应该被忽略。
这是我的代码片段,
-(void)DeletebtnCliked:(id)sender
{
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Are you sure want to delete ?"
message:nil delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"Yes",@"No",nil];
[alertView show];
[alertView release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
UIAlertView* alertew = [[UIAlertView alloc] initWithTitle:@"Deleted Successfully !"
message:nil delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertew show];
[alertew release];
if (buttonIndex == 0)
{
[self MethodCall];
}
}
else if (buttonIndex == 1)
{
[alertView dismissWithClickedButtonIndex:1 animated:TRUE];
}
}写完这段代码后,我就在无限循环中了。
任何帮助都将不胜感激.
发布于 2012-07-10 08:34:21
alertView.tag = 1;
alertew.tag = 2;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView.tag == 2)
{
//Do something
}
else
{
//Do something else
}
}发布于 2012-07-10 08:41:42
将第二个警报视图的委托设置为零:
UIAlertView* alertew = [[UIAlertView alloc] initWithTitle:@"Deleted Successfully !"
message:nil delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles:nil];发布于 2012-07-10 08:53:15
或者使用标记来处理类似于下面这样的情况,或者只是为内部的alertView设置Delegate,这是在委托方法中的,这样它就不会调用。
-(void)DeletebtnCliked:(id)sender
{
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Are you sure want to delete ?"
message:nil delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"Yes",@"No",nil];
alertView.tag = 1;
[alertView show];
[alertView release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0 && alertView.tag == 1)
{
UIAlertView* innerAlert = [[UIAlertView alloc] initWithTitle:@"Deleted Successfully !"
message:nil delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
innerAlert.tag = 2;
[innerAlert show];
[innerAlert release];
if (buttonIndex == 0 && alertView.tag == 1)
{
[self MethodCall];
}
}
else if (buttonIndex == 1 && alertView.tag == 1)
{
[alertView dismissWithClickedButtonIndex:1 animated:TRUE];
}
}https://stackoverflow.com/questions/11409454
复制相似问题