如何从MainViewController在AppDelegate中执行方法。
[super performSelector:@selector(doSomething)];
并且方法doSomething在AppDelegate.m中定义
-(void) doSomething {
NSLog(@"Method Executed");
}
答案 0 :(得分:3)
假设您想要iOS,只需一个简单的电话:
[[[UIApplication sharedApplication] delegate] doSomething];
应该这样做。在Mac Os上,您使用NSApplication
代替。
由于你的app委托不是(是吗?)你的主视图控制器的超类,你不能像你的问题那样做。
但是,更好的方式应该是:
[[UIApplication sharedApplication] sendAction:@selector(doSomething)
to:nil
from:self];
这种方式(将nil
指定为接收者),操作消息将通过响应者链,如果没有响应者对象可以处理它,最终将由您的应用委托处理。此外,这方式阻止您直接在自定义视图控制器中引用应用程序委托。
Here是有关此方法的更多信息的文档。