2011-04-21 14 views

cevap

7
[[[UIApplication sharedApplication] delegate] someMethod]; 

Works (veya ben AppDelegate bir başvuru tutmak için RootViewController bir temsilci nesnesi oluşturmak gerekiyor)!

+0

teşekkürler Daniel çağırabilir - ve AppDelegate (benim durumumda saveCoreData yöntemi) olan yöntemleri çağırmak için bunu kullanarak yanlış bir şey yok? Yani, bu konuda en iyi uygulamalara ya da herhangi bir şeye karşı olan bir şey yok mu? – Greg

+0

Bu yaklaşımdaki sorun, app delegate sınıfınızda tanımlanmış özel bir yöntemi doğru bir şekilde göndermeden çağırıyorsanız derleyici uyarıları alacağınızdır. –

+2

Şahsen, App-Delegesi ile çalışmanın bu tarz bir yolunu kullanmamayı tercih ederim, çünkü ViewController'ınızı uygulamaya özel App-Temsilcisinin uygulanmasına zorlayarak, diğer projeleriniz için viewController'ınızın yeniden kullanılabilirliğini önemli ölçüde azaltıyor. Eğer bana sorduysan, bunu yapma, ama doğru bir protokol tanımla veya NSNotification kullan. – Till

6

Hep bu yüzden bir çok yok (benim için bunu yapmak için MyCustomAppDelegate için bir yöntem eklemek, bu yüzden sık gerçekleşen

MyDelegate* aDelegate = (MyDelegate *)[[UIApplication sharedApplication] delegate]; 
2

kullanarak herhangi denetleyicisinden uygulama temsilcinize erişebilirsiniz . benim kodunda döküm şimdi

@implementation MyCustomAppDelegate() 
- (MyCustomAppDelegate *)appDelegate { 
    return (MyCustomAppDelegate *)[[UIApplication sharedApplication] delegate]; 
} 
@end 

yerde ben

[MyCustomAppDelgate appDelegate] 
İlgili konular