如何从appdelegate调用方法[重复]

Posted

技术标签:

【中文标题】如何从appdelegate调用方法[重复]【英文标题】:How to call a method from appdelegate [duplicate] 【发布时间】:2013-03-25 16:37:23 【问题描述】:

我有一个 switch 语句,它利用 nsuserdefaults bool 函数来确定打开和关闭。我的问题是当 switch 键 bool 为 yes 时,如何在视图控制器中调用 appdelegate.m 方法。基本上在 view controller.m 的第一个 if 语句中调用 appdelagte.m 方法。

Appdelegate.m

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken 
     TUPushHelper * helper = [[TUPushHelper alloc] initWithTokenData:devToken];
     [helper registerDevice];

Viewcontroller.m

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchKey"]) 
    NSLog(@"ok");   

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchKey"]) 
    [[UIApplication sharedApplication]unregisterForRemoteNotifications];   

【问题讨论】:

找到另一个:***.com/questions/8233253/… 【参考方案1】:
[((AppDelegate*) [[UIApplication sharedApplication] delegate]) someMethod:nil];

别忘了#import "AppDelegate.h

【讨论】:

【参考方案2】:
Bool isOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchKey"];

if (isOn) 
    NSLog(@"ok");   



if (!isOn) 
    [[[UIApplication sharedApplication] delegate] unregisterForRemoteNotifications];   

【讨论】:

以上是关于如何从appdelegate调用方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 AppDelegate.m 调用 ViewController.m 方法

如果我使用 TabBar Navigation,如何从 AppDelegate 调用 viewcontroller 方法

如何从 ViewController 或其他地方调用或触发 AppDelegate 中的通知功能?

无法从 AppDelegate 调用 ViewController 方法

从 appdelegate 调用 UITableView 的 reloadData 方法

如何从 UI Xctest 调用 Appdelegate 的“OpenURL”功能