SORU
21 EKİM 2010, PERŞEMBE


Parametreler:eylem addTarget geçiyor:forControlEvents

AddTarget kullanıyorum:eylem:bu gibi forControlEvents:

[newsButton addTarget:self
action:@selector(switchToNewsDetails)
forControlEvents:UIControlEventTouchUpInside];

ve benim seçici parametreleri geçirmek istiyorum"". switchToNewsDetails Başarabildim tek şey yazarak (ıd)Gönderen geçmektir:

action:@selector(switchToNewsDetails:)

Ama tamsayı değerleri gibi değişkenleri geçmek için çalışıyorum. Bu şekilde yazmaya çalışmıyor :

int i = 0;
[newsButton addTarget:self
action:@selector(switchToNewsDetails:i)
forControlEvents:UIControlEventTouchUpInside];

Bu şekilde yazılı ya da çalışmıyor:

int i = 0;
[newsButton addTarget:self
action:@selector(switchToNewsDetails:i:)
forControlEvents:UIControlEventTouchUpInside];

Herhangi bir yardım için teşekkür ederiz :)

CEVAP
21 EKİM 2010, PERŞEMBE


action:@selector(switchToNewsDetails:)

switchToNewsDetails: yöntem burada bir parametre değil. Sadece düğme belirli bir eylem gerçekleştiğinde de yapmak için bir seçici (sizin durumunuzda rötuş) oluşturun. Kontroller seçiciler 3 tip parametrelerin anlamı, önceden tanımlanmış tüm eylemler için yanıt vermek için kullanabilirsiniz:

  1. herhangi bir parametre

    action:@selector(switchToNewsDetails)
    
  2. 1 parametre mesajı gönderen denetimi gösteren

    action:@selector(switchToNewsDetails:)
    
  3. 2 parametre ile mesaj ve ileti tetikleyen olay gönderdiği denetimi belirten:

    action:@selector(switchToNewsDetails:event:)
    

Yapmaya çalıştığın şey belli değil, ama her düğme için belirli ayrıntıları bir dizin atamak istediğiniz düşünülürse, aşağıdakileri yapabilirsiniz:

  1. her düğme gerekli Endeksi eşit bir etiket özelliği
  2. switchToNewsDetails: yöntem bu dizin edinmek ve uygun. açabilirsiniz:

    - (void)switchToNewsDetails:(UIButton*)sender{
        [self openDetails:sender.tag];
        // Or place opening logic right here
    }
    

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LardTardProductions's channel

    LardTardProd

    10 NİSAN 2009
  • Muse

    Muse

    28 EYLÜL 2006
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012