我想知道如何将数据传回AppDelegate。假设我有这个计划
AppDelegate - > RootViewController -> FirstViewController -> SecondViewController.
SecondViewController具有在调用AppDelegate applicationWillTerminate方法时应保存的数据。我知道我可以使用单例在应用程序中共享数据,但我不喜欢这种方法。在这种情况下,通知似乎不起作用。
你能推荐我什么?
答案 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。
希望它有所帮助。