Ios 处理UILocalNotification火灾事件
因此,我正在使用UILocalNotification,我已经非常熟悉如何使用它 使用选项完成启动 及 DiReceiveLocalNotification 用于在通知发出时处理通知。我可以用做很多事情的代码来填充这两个函数 我似乎不知道如何让这些功能与我的应用程序的其余部分“交互”。让我解释一下我的意思 我最初认为可以在主视图控制器中创建一个委托协议,而不是在这两个函数中执行大部分逻辑。然后AppDelegate将注册为一个委托,然后我可以在我的视图控制器类中使用notification events调用方法,并在那里执行大部分逻辑。所有这些都像我所希望的那样有效——除了一个我没有预料到的情况 我已经弄明白为什么它不起作用了。我在MyViewController的viewDidLoad函数中分配代理:Ios 处理UILocalNotification火灾事件,ios,uilocalnotification,Ios,Uilocalnotification,因此,我正在使用UILocalNotification,我已经非常熟悉如何使用它 使用选项完成启动 及 DiReceiveLocalNotification 用于在通知发出时处理通知。我可以用做很多事情的代码来填充这两个函数 我似乎不知道如何让这些功能与我的应用程序的其余部分“交互”。让我解释一下我的意思 我最初认为可以在主视图控制器中创建一个委托协议,而不是在这两个函数中执行大部分逻辑。然后AppDelegate将注册为一个委托,然后我可以在我的视图控制器类中使用notification ev
- (void) viewDidLoad
{
[super viewDidLoad];
MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.delegate = self;
}
这样做的问题是,当应用程序冷启动时,会在MyViewController的viewDidLoad函数之前调用didfinishlaunchingwithoptions。所以它从来没有机会成为代表。我没有机会用我的委托协议方法处理在didfinishlaunchingwithoptions中获得的第一个UILocalNotification
所以我知道我的问题是什么,我想不出更好的方法来处理这些UILocalNotification事件。任何想法都值得赞赏。我得到了一个解决方案,可能这不是一个好的解决方案 你可以信赖 使用选项实现您的
didfishlaunching:
如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//other code
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"notificationReceived"];
return YES;
}
在MyViewController
- (void)viewDidLoad
{
if([[NSUserDefaults standardUserDefaults] boolForKey:@"notificationReceived"])
{
//notification received do the stuff
//reset the bool
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"notificationReceived"];
}
}
@谢谢你的评论。祝你一切顺利。