将数据从ViewController传递到AppDelegate

时间:2011-07-09 06:27:27

标签: ios objective-c uiviewcontroller uiapplicationdelegate

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

[super performSelector:@selector(doSomething)];

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

-(void) doSomething {

NSLog(@"Method Executed");

}

1 个答案:

答案 0 :(得分:3)

假设您想要iOS,只需一个简单的电话:

[[[UIApplication sharedApplication] delegate] doSomething];

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

但是,更好的方式应该是:

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

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

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