【问题标题】:UIAlertViewDelegate and more Alert windowsUIAlertViewDelegate 和更多警报窗口
【发布时间】:2010-12-03 14:21:03
【问题描述】:

我有实现 UIAlertViewDelegate 的控制器。在实施中,我有:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

方法。当我创建 UIAlertView 时,我将“委托”设置为“自我”,它工作正常。但问题是现在我有了更多的警报视图,并且我希望它们中的每一个都有不同的行为。那么如何查看是哪个 alertView 发送消息呢?

【问题讨论】:

    标签: iphone objective-c uialertview


    【解决方案1】:

    UIAlertView 是 UIView 的子类,因此有标签属性可以用来区分它们:

    UIAlertView *alert1 = ... //Create alert
    alert1.tag = kActionTag1;
    //show alert
    
    ...
    
    UIAlertView *alert2 = ... //Create alert
    alert2.tag = kActionTag2;
    //show alert
    

    然后在委托方法中:

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
         if (alertView.tag == kActionTag1){
              // Perform 1st action
         }
         if (alertView.tag == kActionTag1){
              // Perform 2nd action
         }
    }
    

    【讨论】:

      【解决方案2】:

      指向每个特定警报视图的指针在委托方法的 alertView 参数中发送。您只需要跟踪指针(例如通过实例变量),以便知道哪个是哪个并相应地采取行动。

      【讨论】:

        【解决方案3】:

        UIAlertView 是一个标签属性。在创建时设置它,您可以在委托中检查标签。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-11-22
          • 2019-10-06
          • 2013-12-15
          • 2014-08-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多