0

这是一个让我失望的问题,因为我无法解决它,尽管它看起来很容易。事实是我有一个iOS应用程序,主要是一个加载网站的webview,我需要在收到通知时加载不同的wen页面。我正在实施推送通知,并且我已经设法让它们正常工作。它们由 App Delegate 中的应用程序接收,然后是问题开始的时候。我想用特定的 URL 启动 webview,但我不知道该怎么做。我试图获取 webview 实例并将 URL 传递给它:

“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 中创建一个实例方法,尝试从那里重新加载。我还尝试以编程方式加载情节提要,但是当情节提要中未选中“是初始视图控制器”时,应用程序在启动前崩溃。

我做了很多谷歌搜索,但我不太了解这个生命周期是如何运作的。我会感谢任何帮助。

4

1 回答 1

0

可能,您应该window.rootViewController在应用程序委托的 didFinishLaunching:withOptions: 方法中将您的 viewcontroller 设置为 AppDelegate,而不是将其添加为 webView 作为窗口子视图 - 因为 webView 仅在 UIViewController 的方法viewDidLoad被调用后加载 - 这意味着您的 webView 可能不会在您正在尝试使用请求重新加载它。

于 2012-11-20T14:01:58.880 回答