UIAlertViewDelegate и другие окна предупреждений
У меня есть контроллер, который реализует UIAlertViewDelegate. В реализации у меня есть:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
метод. Когда я создаю UIAlertView, я помещаю "делегат" в "я", и он отлично работает. Но проблема в том, что теперь у меня есть еще одно представление предупреждения, и я хочу, чтобы для каждого из них было по-разному. Итак, как проверить, какое сообщение alertView отправить?
Ответы
Ответ 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 - свойство тега. Установите его, когда вы его создаете, и вы можете проверить тег в делегате.