UIAlertViewDelegate и още прозорци за предупреждения

Имам контролер, който изпълнява UIAlertViewDelegate. В изпълнение имам:

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

метод. Когато създавам UIAlertView, поставям за „delegate“ на „self“ и работи добре. Но проблемът е, че сега имам още един предупредителен изглед и искам различно поведение за всеки от тях. И така, как да проверите кой 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