Ios 如何将UIAlertView与操作挂钩?

Ios 如何将UIAlertView与操作挂钩?,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,我正在创建一个绘图应用程序,用户可以使用手指笔划进行绘图。我试图制作一个按钮,询问用户是否希望清除画布。此警报有两个按钮“是”和“否”。我的警报视图显示正确,但我花了一整天的时间试图找出如何将按钮与操作挂钩。到目前为止,即使在阅读和观看了许多教学资料之后,我也没有取得任何成功。从我读到的每一件事来看,我不明白为什么它不起作用。我还将UIAlertViewDelegate包含在我的.h文件中 以下是我的警报视图: - (IBAction)clearButton:(id)sender {

我正在创建一个绘图应用程序,用户可以使用手指笔划进行绘图。我试图制作一个按钮,询问用户是否希望清除画布。此警报有两个按钮“是”和“否”。我的警报视图显示正确,但我花了一整天的时间试图找出如何将按钮与操作挂钩。到目前为止,即使在阅读和观看了许多教学资料之后,我也没有取得任何成功。从我读到的每一件事来看,我不明白为什么它不起作用。我还将UIAlertViewDelegate包含在我的.h文件中

以下是我的警报视图:

    - (IBAction)clearButton:(id)sender {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Clear Canvas" 
            message:@"Are you sure?" 
            delegate:nil 
            cancelButtonTitle:@"No" 
            otherButtonTitles:@"Yes", nil];

        [alert show];
    }
以下是我的clear canvas方法:

- (void)clearCanvas:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 1)
        drawImage.image = nil;
}
任何帮助或指点都将不胜感激!我自学成才,还是个初学者! 谢谢

请注意delegate参数中的差异。您必须符合在.h中声明的委托


其次,使用委托方法-alertView:ClickedButtonIndex

“从我读到的所有内容中,我无法理解为什么它不起作用”,即:我已经完成了我读到的我应该做的事情。这是我在做了许多小时的研究后得出的结论,所以您知道UIAlertViewDelegate。如果您看到您为代理传递了nil,它看起来正常吗?它应该是
self
。您应该启用
-alertView:ClickedButtonIndex:
,因此我们希望您在提问之前做大量的研究。你必须对你想解决的问题表现出最低限度的理解。你没有这样做。您似乎对委托模式一无所知。这是iOS开发中非常基本的模式。更进一步:jnawaz的答案在哪里比我之前链接的答案更好?你的问题和任何答案都是不必要的,因为它被回答了数千次。如果你对这个社区不够成熟,你应该寻找另一个更适合你需要的。所以我不会为了适应你而改变。非常感谢你,这正是我所需要的。你真的帮我弄清楚了。非常感谢您的帮助,因为我现在可以继续前进了!
- (IBAction)clearButton:(id)sender {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Clear Canvas" 
        message:@"Are you sure?" 
        delegate:self 
        cancelButtonTitle:@"No" 
        otherButtonTitles:@"Yes", nil];

    [alert show];
}