SORU
21 EKİM 2009, ÇARŞAMBA


NSArray otherButtonTitles belirtmek için kullanılır?

UİAlertSheet yapıcı varg bir liste olarak otherButtonTitles bir parametre alır. Diğer düğme ünvanlar bir NSArray yerine gelen istiyorum. Bu mümkün mü?

yani yapmamız gereken bu

id alert = [[UIActionSheet alloc] initWithTitle: titleString
                                  delegate: self
                                  cancelButtonTitle: cancelString
                                  destructiveButtonTitle: nil
                                  otherButtonTitles: button1Title, button2Title, nil];

Ama çalışma zamanında kullanılabilir düğmeler listesini üreten ben olduğuma göre, Ben böyle bir şey istiyorum:

id alert = [[UIActionSheet alloc] initWithTitle: titleString
                                       delegate: self
                              cancelButtonTitle: cancelString
                         destructiveButtonTitle: nil
                              otherButtonTitles: otherButtonTitles];

Şimdi, Madde 1, 2 ve 3 öğeler için initWithTitle: için ayrı bir çağrı olması gerekir diye düşünüyorum. Bu gibi:

if ( [titles count] == 1 ) {
     alert = [[UIActionSheet alloc] initWithTitle: titleString
                                         delegate: self
                                cancelButtonTitle: cancelString
                           destructiveButtonTitle: nil
                                otherButtonTitles: [titles objectAtIndex: 0], nil];
} else if ( [titles count] == 2) {
     alert = [[UIActionSheet alloc] initWithTitle: titleString
                                         delegate: self
                                cancelButtonTitle: cancelString
                           destructiveButtonTitle: nil
                                otherButtonTitles: [titles objectAtIndex: 0], [titles objectAtIndex: 1],  nil];
} else {
    // and so on
}

Bu kuralların ihlali var, ama aslında en fazla üç düğme var bu yana makul olabilir. Bunu nasıl bertaraf edebilirim?

CEVAP
21 EKİM 2009, ÇARŞAMBA


Bu UİActionSheet başlatmak düğmeleri eklemek yerine, NSArray geçer addButtonWithTitle yöntemi bir for döngüsü kullanarak onları eklemeyi deneyin.

UIActionSheet *alert = [[UIActionSheet alloc] initWithTitle: titleString
                              delegate: self
                              cancelButtonTitle: cancelString
                              destructiveButtonTitle: nil
                              otherButtonTitles: nil];

for( NSString *title in titles)  
    [alert addButtonWithTitle:title]; 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • EvilControllers

    EvilControll

    20 Ocak 2008
  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006