将数据从 ViewController 传递到 AppDelegate

Posted

技术标签:

【中文标题】将数据从 ViewController 传递到 AppDelegate【英文标题】:Passing data from ViewController to AppDelegate 【发布时间】:2011-07-09 06:27:26 【问题描述】:

如何从 MainViewController 执行 AppDelegate 中的方法。

[super performSelector:@selector(doSomething)];

并且方法doSomething在AppDelegate.m中定义

-(void) doSomething 

NSLog(@"Method Executed");


【问题讨论】:

【参考方案1】:

假设你想要它用于 ios,一个简单的调用:

[[[UIApplication sharedApplication] delegate] doSomething];

应该这样做。在 Mac Os 上,您使用 NSApplication 代替。 由于您的应用程序委托不是(是吗?)您的主视图控制器的超类,因此您不能像您的问题那样做。

而且,更好的方法应该是:

[[UIApplication sharedApplication] sendAction:@selector(doSomething)
                                           to:nil
                                         from:self];

这样(指定nil作为接收者),动作消息将通过响应者链,如果没有响应者对象可以处理,最终将由您的应用程序委托处理。另外,这种方式可以防止您可以直接在自定义视图控制器中引用应用委托。

Here 是有关此方法的更多信息的文档。

【讨论】:

谢谢,但如果有人觉得有帮助,我会使用此方法 MyExampleAppDelegate *ad = [[MyExampleAppDelegate alloc] [ad doSomething]; [广告发布];希望这不会损害应用程序。

以上是关于将数据从 ViewController 传递到 AppDelegate的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 ViewController 传递到 TabBarController

你如何将数据从 ViewController 传递到包含单独 ViewController 的 PageViewController,然后这些 ViewController 将使用这些数据?

将数据从 ViewController 传递到 TabViewController

将数据从 TableView 传递到 ViewController

将数据从 UITableViewCell 传递到 ViewController

将数据从 ViewController 传递到 NSObject