所以我正在使用UILocalNotification,我已经非常熟悉了
didfinishlaunchingwithoptions
和
didReceiveLocalNotification
用于在发射时处理通知 . 我可以使用执行许多操作的代码来填充这些函数 .
我似乎无法弄清楚如何使这些功能与我的应用程序的其余部分“交互” . 让我解释一下我的意思 .
我最初认为可以在主视图控制器中创建委托协议,而不是在这两个函数中执行大部分逻辑 . 然后,AppDelegate将注册为委托,然后我可以在视图控制器类中使用通知事件调用方法,并在那里执行大多数逻辑 . 所有这一切都像希望的那样 - 除了一个我没想到的情况 .
我已经弄明白为什么它不起作用了 . 我在MyViewController的viewDidLoad函数中分配委托:
- (void) viewDidLoad
{
[super viewDidLoad];
MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.delegate = self;
}
这样做的问题是当App冷启动时,在FinViewController的viewDidLoad函数之前调用didfinishlaunchingwithoptions . 所以它永远不会有机会成为代表 . 没有机会处理我使用我的委托协议方法在didfinishlaunchingwithoptions中获得的第一个UILocalNotification .
所以我知道我的问题是什么,我想不出更好的方法来处理这些UILocalNotification事件 . 任何想法都赞赏 .
1 回答
我得到了一个解决方案,可能这不是一个好的解决方案 .
你可以依靠NSUserDefaults .
实现你的
didFinishLaunchingWithOptions:
:viewDidLoad
的viewDidLoad