SORU
9 Mayıs 2010, Pazar


ViewController Kalıcı olarak sunulan olup olmadığını belirlemek mümkün mü?

Kalıcı görünüm denetleyicisi olarak sunulan ViewController sınıfı içinde kontrol etmek mümkün mü?

CEVAP
14 HAZİRAN 2011, Salı


Eğer iOS için bir saat 6 , bu cevap önerilmiyor ve Gabriele Petronella's answer kontrol etmelisiniz


Bu, bir özellik veya yöntem UİKit yerli olarak yapmak için düzgün bir yol yok. Ne yapabilirim kalıcı olarak sundu olduğundan emin olmak için kumandanız çeşitli yönlerini kontrol etmek için.

Bu yüzden eğer kontrol etmek içinmevcut(temsil olarak self kod feryat) denetleyicisi sunulan kalıcı bir şekilde ya da değil, ben işlevi feryat ya da bir UIViewController kategori, ya da (eğer projeniz gerek yok kullanın diğer UİKit denetleyicileri, UITableViewController örneğin) için bir üs denetleyicisi, benim diğer denetleyicileri devralır

-(BOOL)isModal {

     BOOL isModal = ((self.parentViewController && self.parentViewController.modalViewController == self) || 
            //or if I have a navigation controller, check if its parent modal view controller is self navigation controller
            ( self.navigationController && self.navigationController.parentViewController && self.navigationController.parentViewController.modalViewController == self.navigationController) || 
            //or if the parent of my UITabBarController is also a UITabBarController class, then there is no way to do that, except by using a modal presentation
            [[[self tabBarController] parentViewController] isKindOfClass:[UITabBarController class]]);

    //iOS 5 
    if (!isModal && [self respondsToSelector:@selector(presentingViewController)]) {

        isModal = ((self.presentingViewController && self.presentingViewController.modalViewController == self) || 
             //or if I have a navigation controller, check if its parent modal view controller is self navigation controller
             (self.navigationController && self.navigationController.presentingViewController && self.navigationController.presentingViewController.modalViewController == self.navigationController) || 
             //or if the parent of my UITabBarController is also a UITabBarController class, then there is no way to do that, except by using a modal presentation
             [[[self tabBarController] presentingViewController] isKindOfClass:[UITabBarController class]]);

    }

    return isModal;        

}

EDİT: Eğer bir UİTabBarController kullanılmakta olup olmadığını görmek için son bir kontrol ekledim, ve kalıcı olarak başka bir UİTabBarController mevcut.

EDİT 2: UIViewController parentViewController artık cevap vermez eklendi iOS 5 kontrol, ama 7 ** yerine.

EDİT 3: https://gist.github.com/3174081 diye . sadece bunun için bi fikri yarattım

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • EEVblog

    EEVblog

    4 NİSAN 2009
  • SoundHound

    SoundHound

    8 Mart 2006