IOS 使用 AppDelegate.m 中 ViewController.m 的方法?

Posted

技术标签:

【中文标题】IOS 使用 AppDelegate.m 中 ViewController.m 的方法?【英文标题】:IOS Using method from ViewController.m in AppDelegate.m? 【发布时间】:2013-07-09 16:46:48 【问题描述】:

所以我在 ViewController.m 中有一个方法,只需按一下按钮即可发布通知(到通知中心)

这是 ViewController.m 中的方法

- (IBAction)buttonPush:(id)sender 
    //clear NC
    [[UIApplication sharedApplication] cancelAllLocalNotifications];


    //make mutablearray
    NSMutableArray *list = [NSMutableArray array];


    [list addObject:first];
    [list addObject:second];
    [list addObject:third];



    //post notification
    for (UITextField *thing in list) 
        UILocalNotification *notif = [[UILocalNotification alloc] init];
        notif.alertBody = thing.text;
        [[UIApplication sharedApplication] presentLocalNotificationNow:notif];
        NSLog(@"looped!");

    


    

我想做的是在以下方法中使用上述方法(在 AppDelegate.m 中):

- (void)applicationDidEnterBackground:(UIApplication *)application

【问题讨论】:

你在使用故事板吗? @jsd 是的,我使用了一个“Touch Down”引用按钮的插座 【参考方案1】:

您可以注册以在您的视图控制器中接收通知,以便在应用程序进入后台时收到通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(buttonPush:) name:UIApplicationWillResignActiveNotification object:nil];

【讨论】:

好的,但我会把这个放在哪里?在 - (void)applicationDidEnterBackground:(UIApplication *)application ? 没有。在 ViewController.m 中的 -(void)viewDidLoad 方法中。

以上是关于IOS 使用 AppDelegate.m 中 ViewController.m 的方法?的主要内容,如果未能解决你的问题,请参考以下文章

iOS AppDelegate的.m文件解析

iOS工程中AppDelegate.m文件的作用

AppDelegate.m 的“application:didFinishLaunchingWithOptions”的默认实现是不是从 iOS 6 更改为 iOS 8?

仅为 AppDelegate.m iOS 中的首次启动设置特定方向

未修改的 AppDelegate.m 中的编译错误

iOS AppDelegate.m:处理 openUrl RCTLinkingManager 和 Twitter - 方法 'application:openURL:options:' 的重复声明