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
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
Nasıl programlı olarak eğer benim iş i...
Nasıl değişken olup olmadığını belirle...
Nasıl pi benim hesaplama doğru olup ol...
İki Tarih Aralığını Çakışma Olup Olmad...
Nasıl belirli bir Linux 32 bit veya 64...