- (void)alertViewCancel :( UIAlertView*)不调用alertView

Sea*_*ean 8 iphone methods delegates uialertview

我遇到了UIAlertViewDelegate方法- (void)alertViewCancel:(UIAlertView*)alertView在我用取消按钮取消AlertView时没有被调用的问题.

奇怪的是委托方法- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex工作正常.

有没有人有想法?

在此先感谢
肖恩

- (void)alertViewCancel:(UIAlertView *)alertView
{   
    if(![self aBooleanMethod])
    {
        exit(0);
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    //some code
}   
Run Code Online (Sandbox Code Playgroud)

单击一个按钮时我会调用它:

- (void)ImagePickDone
{
    UIAlertView *alertDone = [[UIAlertView alloc] 
                          initWithTitle:@"Done" 
                          message:@"Are u sure?"
                          delegate:self 
                          cancelButtonTitle:@"Cancel" 
                          otherButtonTitles: @"Yes", nil];
    [alertDone show];   
    [alertDone release];
}
Run Code Online (Sandbox Code Playgroud)

phe*_*cks 12

alertViewCancel用于系统解除警报视图时,而不是用户按下"取消"按钮时.从苹果文档引用:

(可选)您可以实施alertViewCancel:方法,以便在系统取消警报视图时执行相应的操作.如果委托未实现此方法,则默认行为是模拟用户单击取消按钮并关闭视图.

如果要在用户按下"取消"按钮时捕获,则应使用clickedButtonAtIndex方法并检查索引是否与取消按钮的索引相对应.要获得此索引,请使用:

index = alertDone.cancelButtonIndex;
Run Code Online (Sandbox Code Playgroud)