2012-11-20 34 views
0

这是一个让我失望的问题,因为我无法解决它,虽然看起来很简单。 事实上,我有一个iOS应用程序,主要是加载网站的web视图,并且我需要在收到通知时加载不同的文本页面。我正在实施推送通知,并且设法让他们工作。他们被应用程序委托中的应用程序接收,然后是问题开始时。我想用特定的URL启动webview,但我不知道该怎么做。我曾试图让web视图实例,并将URL它:如何在收到远程通知时在WebView中加载不同的页面?

“SomeAppDelegate.h”

#import <UIKit/UIKit.h> 
@class BrowserViewController; 

@interface SomeAppDelegate : UIResponder <UIApplicationDelegate> 
@property(nonatomic, retain) IBOutlet BrowserViewController *viewController; 
@property (strong, nonatomic) UIWindow *window; 
@end 

“SomeAppDelegate.m”

#import "SomeAppDelegate.h" 
#import "BrowserViewController.h" 

@implementation SomeAppDelegate 
@synthesize window = _window; 
@synthesize viewController; 
......... 


- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
[viewController.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20]]; 
[self.window addSubview:viewController.webView]; 
[self.window makeKeyAndVisible]; 

另一项测试是创建一个实例BrowserViewContrller内的方法试图从那里重新加载。我还尝试以编程方式加载故事板,但是当故事板中的“初始视图控制器”未选中时,应用程序在启动之前崩溃。

我做了大量的Google搜索,但我几乎不明白这个生命周期的工作原理。我会感谢任何帮助。

回答

0

也许,你应该设置你的ViewController为AppDelegate中的window.rootViewController在didFinishLaunching:withOptions:您的应用程序委托的方法,而不是将它添加的是web视图作为窗口的子视图 - 因为Webview是UIViewController的方法viewDidLoad了所谓的后只装 - 这意味着你的当您尝试使用请求重新加载webView时,可能无法加载webView。

相关问题