J'affiche une petite quantité de contenu local dans une UIWebView, environ 3 paragraphes de texte et une image de 100x100px. Lorsque l'UIWebView est poussé vers le contrôleur nav, il faut environ une demi-seconde avant que le contenu ne soit affiché. Cela se produit sur l'appareil, pas dans le simulateur. Il est évident que l'UIWebView doit effectuer un certain travail avant d'afficher le contenu, mais y a-t-il un moyen de le faire avant que la vue poussée n'apparaisse ? Je n'ai pas réussi à le faire moi-même.
C'est ici que je crée et pousse le contrôleur de vue qui contient le UIWebView :
ArticleViewController* viewController = [[ArticleViewController alloc] init];
viewController.article = article;
[viewController view]; //touch the view so it gets loaded
[viewController loadWebView]; //load the web view content
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
Et voici le loadWebView
méthode :
-(void)loadWebView {
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString* content = article.content;
NSString *html = [NSString stringWithFormat:@"\
<html><body style='background-color: transparent'><style type=""text/css"">body {font-family: helvetica; color: black; font-size: 10pt; margin: 10px 10px 10px 10px}</style>\
%@<div style='text-align:center'><a href='13443574_9709e4cf37.jpg?photographer=test' style='-webkit-tap-highlight-color:rgba(0,0,0,0);'><img src='13443574_9709e4cf37.jpg' height='160' width='230'></a></div></body></html>", content];
[self.webView loadHTMLString:html baseURL:baseURL];
}
Auparavant, j'avais [viewController loadWebView]
dans la méthode viewDidLoad, mais le résultat semble être le même. Un écran vide lorsque le viewController est poussé, suivi du chargement du contenu une demi-seconde plus tard.
Des idées ?