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

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

[super performSelector:@selector(doSomething)];

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

-(void) doSomething {

NSLog(@"Method Executed");

}

【问题讨论】:

    标签: ios objective-c uiviewcontroller uiapplicationdelegate


    【解决方案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]; [广告发布];希望这不会损害应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2021-01-17
    • 1970-01-01
    • 2020-10-01
    • 2019-12-05
    • 1970-01-01
    相关资源
    最近更新 更多