UIAlertViewDelegate и другие окна предупреждений

У меня есть контроллер, который реализует UIAlertViewDelegate. В реализации у меня есть:

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

метод. Когда я создаю UIAlertView, я помещаю «делегата» в «я», и он отлично работает. Но проблема в том, что теперь у меня есть еще одно представление предупреждений, и я хочу, чтобы для каждого из них было другое поведение. Итак, как проверить, какое сообщение alertView отправляет?


person 1110    schedule 03.12.2010    source источник


Ответы (3)


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
     }
}
person Vladimir    schedule 03.12.2010

Указатель на каждое конкретное представление оповещения отправляется в параметре alertView метода делегата. Вам просто нужно отслеживать указатели (например, через переменные экземпляра), чтобы знать, что есть что, и действовать соответственно.

person Count Chocula    schedule 03.12.2010

UIAlertView газирует свойство тега. Установите его при создании, и вы сможете проверить наличие тега в делегате.

person Matthew Frederick    schedule 03.12.2010