TableViewがあります。セルをクリックすると、クラスImageViewControllerがプッシュされ、画像が表示されます。これはうまく機能しています。viewDidLoadメソッドはここにあります。
- (void)viewDidLoad
{
NSLog(@"ImageViewController Load");
NSLog(@"Image String: %@",imageString);
self.view.contentMode=UIViewContentModeCenter;
UIImage *im = [UIImage imageNamed:imageString];
if(im == nil){
NSLog(@"Image is NULL");
}
[image setImage:im];
self.title = @"View Image";
[super viewDidLoad];
}
imageStringは、.hファイルでNSStringとして定義されています。StoryBoardを使用していて、次の方法でImageViewControllerを起動します。
ImageViewController *imageViewController = [segue destinationViewController];
imageViewController.imageString = [[listData objectAtIndex:selectedIndex]objectForKey:@"image"];
UIWebView内のリンクをクリックしたときに画像を表示しようとすると、問題が発生します(画面が黒くなります)。基本的にここでは、UIWebViewにすべてのコンテンツが含まれているので、リンクをクリックしたときに画像を表示したいと思います。
これを達成するために、私は次の方法を使用しています。
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
そして、次のJavaScriptを使用してImageViewControllerを起動します
window.location.href="eft://?type=image&path=Google.jpg";
shouldStartLoadingWithRequestメソッド内で、次を使用してImageViewControllerをプッシュします。
ImageViewController *imageViewController =[[ImageViewController alloc]init];
imageViewController.imageString = path;
[self.navigationController pushViewController:imageViewController animated:YES];
チェックを実行し、パスとタイプのフィールドは正しいのですが、画面が真っ暗なので、画像はnullではありません。パスフィールドとタイプフィールドに依存するのではなく、ImageViewController(例:google.jpg)でこれらのフィールドを手動で設定しましたが、UIWebViewからコントローラーをロードすると黒い画面が表示されます。テーブルビューからロードすると、完全に機能しますか?
前もって感謝します