如何从RootViewController调用AppDelegate方法而不传递委托?

时间:2011-04-21 23:01:31

标签: iphone ios uiapplicationdelegate

如何在不传递委托的情况下从RootViewController调用AppDelegate方法?

只是想知道是否有办法做到这一点? (或者我是否需要在RootViewController中创建一个委托对象来保存对AppDelegate的引用)

3 个答案:

答案 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]