将数据传递给AppDelegate

时间:2012-03-03 13:26:27

标签: objective-c ios delegates

我想知道如何将数据传回AppDelegate。假设我有这个计划

AppDelegate - > RootViewController -> FirstViewController -> SecondViewController.

SecondViewController具有在调​​用AppDelegate applicationWillTerminate方法时应保存的数据。我知道我可以使用单例在应用程序中共享数据,但我不喜欢这种方法。在这种情况下,通知似乎不起作用。

你能推荐我什么?

2 个答案:

答案 0 :(得分:4)

这应该得到该代表。

AppDelegate * delegate =(AppDelegate*) [UIApplication sharedApplication].delegate
[delegate callSomeMethod:someData];

答案 1 :(得分:1)

另一个建议。在AppDelegate.h类中,您可以创建类似如下的类方法:

+ (AppDelegate *)getAppDelegate;

然后在你的AppDelegate.m

+ (AppDelegate *)getAppDelegate
{
    return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}

现在您可以在任何地方访问该委托(在导入AppDelagate.h之后)。

AppDelegate* sharedDelegate = [AppDelegate getAppDelegate];

更简洁的方法是创建一个类别并将代码放在那里。

现在我的问题是:为什么需要在委托中保存数据?也许你可以使用单身人士。有关详细信息,请参阅singletons-appdelegates-and-top-level

希望它有所帮助。