2010-06-25 2 views
0

Есть два класса А и В:реализация Понимание протокола с примером UIAlertViewDelegate

@interface A: NSObject < UIAlertViewDelegate> {...} @end

@interface B {...}

A будет использовать B через создание B и использовать его.

В B есть вероятность создать UIAlertViewDialog и выполнить некоторые пользовательские взаимодействия.

Я думаю, что разумно реализовать clickedButtonAtIndex в классе A, поскольку A объявляется для подтверждения UIAlertViewDelegate. Но правда в том, что мы должны реализовать в Б.

  • (Недействительными) alertView: (UIAlertView *) предупреждение clickedButtonAtIndex: (NSInteger) buttonIndex {// бла бла}

Я действительно не могу понять, что является истинной причиной для подтверждения протокола, как этот случай.

Заранее спасибо.

ответ

1

При создании UIAlertView вы определяете, что будет класс делегата:

UIAlertView *alert = [[UIAlertView alloc] 
      initWithTitle: title 
      message: message 
      delegate: delegate 
      cancelButtonTitle: firstButtonName 
      otherButtonTitles: nil]; 

Так что, если вы создаете UIAlertView в классе B, но вы хотите, чтобы реагировать на кнопку крана в классе А вам нужно установить делегат в приведенном выше коде к классу A.

+0

Спасибо за ваш ответ, который очищает мое замешательство. – Forrest

+0

Было бы здорово, если бы вы могли принять ответ (нажав галочку), если это была информация, которую вы искали;) – Shingoo

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