3

UIWebView を読み込むアプリがあります。そして、それはうまくいきます。ユーザーが Web ビューのリンクをクリックすると、新しいビュー コントローラー/Web ビューが作成され、リンクが読み込まれます。これもうまく機能します。

うまく機能していないのは、最初の Web ビューに戻ったときに (おそらく 1/4)、ビューが真っ白になることがあることです。

コントローラーの割り当てが解除されておらず、その間にメモリ警告を受信して​​いません。そして、私は完全に困惑しています。

何が起こっているのか、特にそれを修正する方法を知っている人はいますか?

コントローラーと関係のあるメソッドは次のとおりです。

初期コントローラー:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (navigationType == UIWebViewNavigationTypeLinkClicked)
    {
        WebView * wv = [[WebView alloc] initWithNibName:@"WebView" bundle:nil];
        UIBarButtonItem *backBar = [[UIBarButtonItem alloc] initWithTitle:@"Back to the Article" style:UIBarButtonItemStyleDone target:nil action:nil];
        self.navigationItem.backBarButtonItem = backBar;
        [backBar release];
        [[UIAppDelegate navigationController] pushViewController:wv animated:YES];
        [[wv webView] loadRequest:request];
        [wv release];
    }
    return NO;
}
else
    return YES;
}

その他のコントローラー (WebView):

- (void)viewDidLoad {
    [super viewDidLoad];
    [webView setDelegate:self];
}
4

2 に答える 2

1

メモリ警告が表示されていないことを確認しますか?

これがいつ発生するかは明らかではない場合があります。

于 2009-06-22T07:27:43.313 に答える
0

以下を使用して解決した同様の問題がありました。

[self.webView loadHTMLString:@"HTML GOES HERE" baseURL:[NSURL URLWithString:@""]];

それ以外の:

[self.webView loadHTMLString:@"HTML GOES HERE" baseURL:nil];

どうやらUIWebViewはすぐにクリアされました

[[self navigationController] presentModalViewController:myModalViewController animated:YES];

UIWebView の -loadHTMLString:baseURL: メソッドの baseURL: 引数に nil を渡したときに呼び出されました。このバグは、iOS 4.3 SDK にアップグレードした後に発生しました。

于 2011-03-24T21:59:15.390 に答える