UIWebView становится пустым при переходе обратно к представлению - PullRequest
3 голосов
/ 12 июня 2009

У меня есть приложение, которое загружает UIWebView. И это хорошо работает. Пользователь может щелкнуть ссылку в веб-представлении, которое затем создает новый контроллер представления / веб-представление, чтобы загрузить ссылку, что также хорошо работает.

Что не очень хорошо работает, так это то, что иногда (возможно, 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];
}

Ответы [ 2 ]

1 голос
/ 22 июня 2009

Вы уверены, что не получает предупреждение о памяти?

Это может быть неочевидно, когда это происходит.

0 голосов
/ 25 марта 2011

У меня была похожая проблема, которую я решил с помощью:

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

вместо:

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

Видимо, UIWebView очищался, как только

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

был вызван при передаче nil для аргумента baseURL: из -loadHTMLString: baseURL: метод UIWebView :. Эта ошибка появилась после обновления до iOS 4.3 SDK.

...