Использование buttonIndex с несколькими видами предупреждений

У меня есть около 4 просмотров блогов с разными критериями, когда они появляются. Во всех 4 представлениях правая кнопка всегда должна делать то же самое.

Я использую приведенный ниже код, чтобы попытаться сказать, если кнопкаIndex == 1, сделайте что-нибудь.

В настоящее время он работает только в одном из моих предупреждений. Остальные просто закрывают представление предупреждения и никогда не запускают код для IF buttonIndex == 1.

Любые идеи были бы хорошы.

if (a==1) { NSString *message = [[NSString alloc] initWithFormat: @"Only $%@!",dollas.text]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Really?!" message:message delegate:self cancelButtonTitle:@"Close" otherButtonTitles:@"Facebook",nil]; [alert show]; [alert release]; [message release]; } else if (a==2) { NSString *message = [[NSString alloc] initWithFormat: @"Somone just paid you $%@", dollas.text]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Swish!" message:message delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"Facebook",nil]; [alert show]; [alert release]; [message release]; } 

И делегат:

 - (void)alertView:(UIAlertView *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex == 1) { do.stuff; } 

Вы должны настроить делегат на self чтобы вызываемый метод вызывался.

IE –

  UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Really?!" message:message delegate:self //SELF cancelButtonTitle:@"Close" otherButtonTitles:@"Facebook",nil]; 

Установите теги для каждого предупреждения и внутри -didDismissWithButtonIndex сначала проверьте флажок предупреждений

например:

  if (a==1) { NSString *message = [[NSString alloc] initWithFormat: @"Only $%@!",dollas.text]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Really?!" message:message delegate:self cancelButtonTitle:@"Close" otherButtonTitles:@"Facebook",nil]; alert.tag = 1; [alert show]; [alert release]; [message release]; } else if (a==2) { NSString *message = [[NSString alloc] initWithFormat: @"Somone just paid you $%@", dollas.text]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Swish!" message:message delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:@"Facebook",nil]; alert.tag = 2; [alert show]; [alert release]; [message release]; } 

затем в -didDismissWithButtonIndex

 - (void)alertView:(UIAlertView *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex == 1 && actionSheet.tag == 1) { do.stuff; } else if (buttonIndex == 1 && actionSheet.tag == 2) { do.otherStuff; } 

Для случая (a == 2) вы устанавливаете делегат UIAlertView на nil, поэтому - (void)alertView:(UIAlertView *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex даже не нужно вызывать для этого случая. Измените его, чтобы настроить делегат на себя.

  • Попытка представить UIAlertController на View Controller, который уже представляет (null)
  • Табличное представление предупреждения UI не работает в ios7
  • Нажмите кнопку «Обнаружить» с помощью оповещения о блокировке CLLocationManager
  • Сбой при нажатии UIAlertView
  • Создание многопользовательского режима замедленного просмотра
  • Как я могу делать действия в кнопках UIAlertView?
  • Попытка отображения alertView с использованием операторов if / else в iOS
  • UIAlertView имеет прокручиваемое название и сообщение на iOS7
  • Пользовательский UIAlertView: как предотвратить автоматический запуск объекта Objective-C ARC или Как сохранить объект вручную в среде ARC
  • лучший подход для всплывания модального текста после того, как пользователь нажимает на значок «помощь»?
  • Возможно ли переопределить alertview с представлением
  • Давайте будем гением компьютера.