通过示例UIAlertViewDelegate了解协议实现

时间:2010-06-25 08:24:38

标签: iphone

有两个A和B类:

@interface A:NSObject< UIAlertViewDelegate> {...} @end

@interface B {...}

A将通过创建B使用B并使用它。

在B中,有机会创建UIAlertViewDialog,并进行一些用户交互。

我认为在A类中实现clickedButtonAtIndex是合理的,因为A被声明为向UIAlertViewDelegate确认。但事实是我们应该在B中实施。

  
      
  • (void)alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex   {// bla bla}
  •   

我真的无法理解像这种情况确认协议的真正原因是什么。

提前致谢。

1 个答案:

答案 0 :(得分:1)

创建UIAlertView时,您可以定义委托类:

UIAlertView *alert = [[UIAlertView alloc]
          initWithTitle: title
          message: message
          delegate: delegate
          cancelButtonTitle: firstButtonName
          otherButtonTitles: nil];

因此,如果您在B类中创建UIAlertView,但是您想对A类中的按钮点击做出反应,则需要将上面代码中的委托设置为A类。