Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 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 - свойство тега. Установите его, когда вы его создаете, и вы можете проверить тег в делегате.