6

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

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

4

3 回答 3

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

奇迹般有效!

于 2011-04-21T23:10:14.937 回答
6

您可以使用任何控制器访问应用程序委托

MyDelegate* aDelegate = (MyDelegate *)[[UIApplication sharedApplication] delegate];
于 2011-04-21T23:10:25.173 回答
2

这种情况经常发生,以至于我总是添加一个方法来MyCustomAppDelegate为我做这件事(所以我的代码中没有很多转换。

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

现在我可以打电话到任何地方

[MyCustomAppDelgate appDelegate]
于 2011-06-05T16:32:19.993 回答