различные виды предупреждений и viewcontroller - PullRequest
2 голосов
/ 01 апреля 2011

В одном контроллере представления я должен показывать разные оповещения с различными действиями, запускаемыми кнопками оповещений (этот контроллер представления является делегатом оповещений).

Есть ли способ повторно использовать код оповещения init / show / release, учитывая, что в

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

Мне нужно, чтобы оповещения были различимы.

Ответы [ 3 ]

7 голосов
/ 01 апреля 2011

Вы можете определить набор констант для представления каждого отдельного типа представления предупреждений, которым вы управляете.Например:

enum {
    MyFirstTypeOfWarning,
    MySecondTypeOfWarning
};
typedef NSInteger SPAlertViewIdentifier;

Затем, когда вам понадобится представить UIAlertView, вызовите метод, который оборачивает код init / show show и устанавливает тег UIAlertView:

- (void)initializeAndPresentUIAlertViewForWarningType:(SPAlertViewIdentifier)tag {
    // Standard alloc/init stuff
    [alertView setTag:tag];
    [alertView show];
 }

Затем в alertView: clickedButtonAtIndex: вы можете проверить тег переданного представления оповещения и ответить соответствующим образом.

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if ([alertView tag] == MyFirstTypeOfWarning) {
        // Process button index for first type of alert.
    } ...
}
4 голосов
/ 01 апреля 2011

Здесь вы можете получить представление оповещения

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    {
     if([alertView isEqualTo:yourAlertView]) // you can try isEqual:
    {
    //Do something
    }
//Another option is set tags to alertviews and check these tags
// if(alertView.tag == yourAlertView.tag)
//{
//Do something
//}
    }
2 голосов
/ 01 апреля 2011

Именно то, что было заявлено 7KV7.Вам нужно пометить представление предупреждений и проверить в обработчике событий, какой был тег отправителя.Таким образом, вы можете создавать различные действия для разных представлений предупреждений в одном и том же обработчике событий (clickedButtonAtIndex).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...