3

我有一个加载 UIWebView 的应用程序。这很好用。用户可以单击 Web 视图中的链接,然后创建一个新的视图控制器/Web 视图来加载链接,这也很有效。

不太好用的是,有时(可能是 1/4)当我回到最初的 web 视图时,视图是空白的。

控制器没有被释放,并且在两者之间没有收到内存警告。我完全感到困惑。

任何人都知道发生了什么,尤其是如何解决它?

以下是与控制器有关的任何方法:

初始控制器:

- (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 回答