UIWebViewとModalView
非常に細かいところではあるのですが、なかなか分かり難い現象なのでメモ。
アプリ内にブラウザを用意する場合、ModalViewを使って表示するケースってあると思うのですが、最初何だか全く表示されませんでした。
(iOS3.2ベースでのiPadアプリです)
ModalViewに表示する中身はこんな感じの構成。
んで、最初こんな風に表示しようとしてました。
InnerBrowserController *controller = [[InnerBrowserController alloc] initWithNibName:@"InnerBrowserController" bundle:nil]; controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.hogehoge.co.jp/"]]; [controller.webView loadRequest:request]; [self presentModalViewController:controller animated:YES]; [controller release];
これだと、webViewには何も表示されません。(真っ白。)
InnerBrowserController *controller = [[InnerBrowserController alloc] initWithNibName:@"InnerBrowserController" bundle:nil]; controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentModalViewController:controller animated:YES]; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.hogehoge.co.jp/"]]; [controller.webView loadRequest:request]; [controller release];
で、こっちに直したら表示されました。
つまり、ModalViewを「表示してから読み込む」必要があるようなんです。
「読み込んでから表示する」だとうまくいかないんですね。
UIKitって結構こういう細かいハマりどころありますよねー。。