2014-01-23 2 views
0

Создаю пользовательский вид, который имеет ту же функцию, что и UIAlertView. Он также имеет метод экземпляра, такой же, как UIAlertView. Я смотрю документацию, вот метод declareation "- (id) initWithTitle: (NSString *) название сообщения: (NSString *) message delegate: (id) delegate cancelButtonTitle: (NSString *) cancelButtonTitle otherButtonTitles: (NSString *) otherButtonTitles, ... "ios - otherbuttontitles, как принимать значения

Так что я хочу знать в реализации метода, как узнать, сколько кнопок возвращено и получить их заголовки в моем пользовательском представлении.

спасибо.

ответ

2

Вы получаете дополнительные заголовки через va_list. Параметр otherButtonTitles будет первым объектом в списке, и вы можете использовать va_arg() для перебора списка, пока не встретите nil, что завершает список.

Вот код:

- (id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... 
{ 
    self = [super init]; 

    if (self) 
    { 
     va_list args; 
     va_start(args, otherButtonTitles); 

     NSMutableArray *buttonTitlesArray = [NSMutableArray new]; 

     while (otherButtonTitles != nil) 
     { 
      [_buttonTitles addObject:otherButtonTitles]; 
      otherButtonTitles = va_arg(args, NSString *); 
     } 

     // otherButtonTitles now contains all of your button titles 
     // Finish configuration of your view here 
    } 
    return self; 
} 
Смежные вопросы