将数据从 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