接收到本地通知数据后如何创建使用目标 c 传递给主视图控制器?
Posted
技术标签:
【中文标题】接收到本地通知数据后如何创建使用目标 c 传递给主视图控制器?【英文标题】:how to create after receiving local notification data pass to Main view controller using objective c? 【发布时间】:2014-11-17 04:14:29 【问题描述】:我已使用 Objective C for iPhone 应用程序创建本地通知流程。我想将didReceiveLocalNotification
之后的数据传递给主视图控制器。
- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif
if (app.applicationState == UIApplicationStateInactive )
NSLog(@"app not running");
// I need to pass the data to main view controller
else if(app.applicationState == UIApplicationStateActive )
NSLog(@"app running");
// I need to pass the data to main view controller
NSLog(@"Recieved Notification %@",notif); // Handle the notificaton when the app is running
【问题讨论】:
请像创建流程一样展示您的导航堆栈。 我已经创建了客户导航流程... 【参考方案1】:你可以使用 NSNotificationCenter 来传递数据。
在 MainViewController.m
中在viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifMainController:) name:@"notifMainController" object:nil];
-(void)notifMainController:(NSNotification *)notif
NSLog(@"%@",notif.object);
在 AppDelegate 中
- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif
NSLog(@"Recieved Notification %@",notif); // Handle the notificaton when the app is running
if (app.applicationState == UIApplicationStateInactive )
NSLog(@"app not running");
// I need to pass the data to main view controller
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^
MainViewController *obj = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:nil];
[self.navC pushViewController:obj animated:NO];
[[NSNotificationCenter defaultCenter] postNotificationName:@"notifMainController" object:@"your string"];
);
else if(app.applicationState == UIApplicationStateActive )
NSLog(@"app running");
// I need to pass the data to main view controller
[[NSNotificationCenter defaultCenter] postNotificationName:@"notifMainController" object:@"your string"];
您可以像这样在对象中传递[[NSNotificationCenter defaultCenter] postNotificationName:@"notifMainController" object:@"your string"];
中的字符串。
也许这会对你有所帮助。
【讨论】:
如何将数据从 Appdelegate 发送到第三个视图控制器。我以编程方式在我的应用代码中创建了所有内容。 @Mano 我写了所有代码。我添加了 nsnotificationcenter 并使用 NSNotitification 您可以发送数据。请阅读完整的答案。 好的...非常感谢@Chinttu @Mano 如果答案有帮助,则支持或接受即为答案。 另外:这是一篇很棒的文章:nshipster.com/nsnotification-and-nsnotificationcenter以上是关于接收到本地通知数据后如何创建使用目标 c 传递给主视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章