如何在不传递委托的情况下从RootViewController调用AppDelegate方法?
只是想知道是否有办法做到这一点? (或者我是否需要在RootViewController中创建一个委托对象来保存对AppDelegate的引用)
答案 0 :(得分:7)
[[[UIApplication sharedApplication] delegate] someMethod];
像魅力一样!
答案 1 :(得分:6)
您可以使用
从任何控制器访问应用代理MyDelegate* aDelegate = (MyDelegate *)[[UIApplication sharedApplication] delegate];
答案 2 :(得分:2)
这种情况经常发生,我总是向MyCustomAppDelegate
添加一个方法来为我做这个(所以我的代码中没有大量的转换。
@implementation MyCustomAppDelegate ()
- (MyCustomAppDelegate *)appDelegate {
return (MyCustomAppDelegate *)[[UIApplication sharedApplication] delegate];
}
@end
现在我可以打电话到任何地方
[MyCustomAppDelgate appDelegate]