0

簡単そうに見えますが、解決できずに倒れてしまった問題です。実際、私はiOSアプリ、主にWebサイトをロードするWebビューを持っており、通知を受信したときに別のwenページをロードする必要があります。私はプッシュ通知を実装していて、それらを機能させることができました。それらはAppDelegateのアプリによって受信され、問題が発生したときに受信されます。特定のURLでWebビューを起動したいのですが、その方法がわかりません。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];

もう1つのテストは、BrowserViewContrller内にインスタンスメソッドを作成して、そこからリロードしようとすることでした。ストーリーボードをプログラムでロードしようとしましたが、ストーリーボードで[Is Initial View Controller]をオフにすると、起動直前にアプリがクラッシュします。

私はたくさんのグーグルをしましたが、このライフサイクルがどのように機能するのかよくわかりません。私はどんな助けにも感謝します。

4

1 に答える 1

0

おそらく、window.rootViewControllerウィンドウサブビューとしてwebViewを追加するのではなく、アプリデリゲートのdidFinishLaunching:withOptions:メソッドでviewcontrollerをAppDelegateとして設定する必要があります-webViewは、UIViewControllerのメソッドviewDidLoadが呼び出された後にのみロードされるため、WebViewは次の場合にロードされない可能性がありますリクエストでリロードしようとしています。

于 2012-11-20T14:01:58.880 に答える