准备出丑:
我有这个框架应用程序,它有PushWoosh通知类。效果很好。我可以向我的应用程序发送推送信息。
要使此操作,在我的AppDelegate中,有一个名为
- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification这样我就可以在通知被接受的时候启动一些东西。
同时,在我的ViewController中,我有这样一个方法:
-(void)loadURL{
NSLog(@"testing");
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:TOPIC]]];
[webView reload];
}当从ViewController本身调用它时,它工作得很好。
但是,当我试图从appDelegate中的‘appDelegate’方法中调用该方法时,webView并不显示所需的URL,尽管正如日志记录所示,该方法被调用。
我想这表明我对这一切的运作缺乏一些基本的理解。
因此,我会满足于一些条件,这将使这项工作,但我会很高兴地解释一下为什么和如何它背后。
我试着将onPushAccepted:放在ViewController中,但这根本行不通,尽管我在ViewController.m中包含了必要的"PushNotificationManager.h“。
我很困惑,需要你的帮助。
我想你的回答会让我更接近基本知识。
先谢了!
发布于 2014-01-03 22:53:46
在这个特定的例子中,Sjakelien使用的是一个单一的视图应用程序。混淆之处在于,通过执行以下ViewController实例化AppDelegate中的ViewController * vc = [[ViewController alloc]init]; [vc loadURL];的尝试不起作用。
在本例中,解决方案是获取屏幕上显示的ViewController,使用
- (void) onPushAccepted:(PushNotificationManager *)pushManager withNotification:(NSDictionary *)pushNotification {
ViewController *vc = (ViewController*)self.window.rootViewController;
[vc loadURL];
}具有不同设置(如UINavigationController )的应用程序需要采取不同的操作。
有几个选择:
ViewController的新实例并将其推送到导航堆栈上。ViewController将一个新的popToRootViewController实例推到导航堆栈上ViewControllerhttps://stackoverflow.com/questions/20913514
复制相似问题