UİView gelen UİViewController? | Netgez.com
SORU
27 AÄžUSTOS 2009, PERÅžEMBE


UİView gelen UİViewController?

Bir yerleşik şekilde UIViewController UIView Bir almak için var mı? Eğer ters bir başvuru var UIView [self view]) ama merak ettim, onun için UIViewController biliyor musunuz?

CEVAP
17 EYLÜL 2010, Cuma


Örnek Brock tarafından gönderildi kullanarak, çok UİView bir kategori yerine kendi UİViewController olduğunu ve herhangi bir küme (umarım) üst UİViewController seçileceğini özyinelemeli yapılan değişiklik yaptım.

@interface UIView (FindUIViewController)
- (UIViewController *) firstAvailableUIViewController;
- (id) traverseResponderChainForUIViewController;
@end

@implementation UIView (FindUIViewController)
- (UIViewController *) firstAvailableUIViewController {
    // convenience function for casting and to "mask" the recursive function
    return (UIViewController *)[self traverseResponderChainForUIViewController];
}

- (id) traverseResponderChainForUIViewController {
    id nextResponder = [self nextResponder];
    if ([nextResponder isKindOfClass:[UIViewController class]]) {
        return nextResponder;
    } else if ([nextResponder isKindOfClass:[UIView class]]) {
        return [nextResponder traverseResponderChainForUIViewController];
    } else {
        return nil;
    }
}
@end

Kullanın bu kodu ekleyin içine yeni bir sınıf dosyası (ismini verdim benim "UİKitCategories") ve kaldırmak sınıfı veri... kopyala @arayüzüne başlık ve @uygulanması .m dosya. Sonra projenizde, #"UİKitCategories.ithalat h" ve UİView kodu içinde kullanımı:

// from a UIView subclass... returns nil if UIViewController not available
UIViewController * myController = [self firstAvailableUIViewController];

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Excel Functions

    Excel Functi

    4 NİSAN 2010
  • MusicDeluxeTV

    MusicDeluxeT

    14 Mayıs 2010