2009-02-20 2 views
4

У меня есть два UIAlertView с в одном контроллере представления, и я хочу использовать метод делегатаДва предупреждения просмотров в одном контроллере представления

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

Этот метод будет вызываться при нажатии на встревоженном зрении нажимается. Однако оба режима просмотра напоминают тот же метод.

Как я могу разделить два вида просмотра?

ответ

8

Установить значение tag, если отображается предупреждение. Это просто целое число и может быть запрошено в методе обратного вызова/делегирования.

Вот пример (с использованием ActionSheet, а не AlertView, но принцип точно такой же):

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Title" 
                 delegate:self 
               cancelButtonTitle:@"Cancel" 
              destructiveButtonTitle:nil 
               otherButtonTitles:@"Some option", nil]; 
actionSheet.actionSheetStyle = UIActionSheetStyleDefault; 
actionSheet.tag = 10; 
[actionSheet showInView:self.view]; 
[actionSheet release]; 

Затем в селекторе:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
    switch (actionSheet.tag) { 
    case 10: 
     // do stuff 
     break; 
    case 20: 
     // do other stuff 
     break; 
    } 
} 

Конечно, вы бы используйте константы, а не буквенные значения, локализованные строки и т. д., но это основная идея.

+0

Я понимаю, что ур означает его jus, как установить значение тега кнопки, но я не вижу вид предупреждения, имеет свойство tag, может, пожалуйста, показать код в деталях. – 2009-02-20 10:00:07

+0

tag является свойством UIView, из которого UIAlertView (и, для это вопрос, UIButton) является подклассом, поэтому он имеет его. – executor21

+0

Я использую iVar для этого, который после прочтения вашего ответа был глупым! Благодарю. –

Смежные вопросы