处理UILocalNotification火灾事件

时间:2013-06-07 04:27:11

标签: ios uilocalnotification

所以我正在使用UILocalNotification,我已经非常熟悉

  

didfinishlaunchingwithoptions

  

didReceiveLocalNotification

用于在触发时处理通知。我可以使用代码来填充这些函数。

我似乎无法弄清楚如何让这些功能与我的应用程序的其余部分“交互”。让我解释一下我的意思。

我最初认为可以在主视图控制器中创建委托协议,而不是在这两个函数中执行大部分逻辑。然后,AppDelegate将注册为委托,然后我可以在视图控制器类中使用通知事件调用方法,并在那里执行大多数逻辑。所有这一切都像希望的那样 - 除了一个我没想到的情况。

我已经弄明白为什么它不起作用了。我在myViewController的viewDidLoad函数中分配了委托:

- (void) viewDidLoad
{
    [super viewDidLoad];

    MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

    appDelegate.delegate = self;
}

这样做的问题是,当App冷启动时,在FinViewController的viewDidLoad函数之前调用didfinishlaunchingwithoptions。所以它永远不会有机会成为代表。没有机会处理我在使用我的委托协议方法完成配置中的第一次UILocalNotification。

所以我知道我的问题是什么,我想不出更好的方法来处理这些UILocalNotification事件。任何想法都赞赏。

1 个答案:

答案 0 :(得分:1)

我得到了一个解决方案,可能这不是一个好的解决方案。

您可以依靠NSUserDefaults

实施didFinishLaunchingWithOptions:之类的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   //other code
   [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"notificationReceived"];
   return YES;
}

viewDidLoad的{​​{1}}

MyViewController