0

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からコントローラーをロードすると黒い画面が表示されます。テーブルビューからロードすると、完全に機能しますか?

前もって感謝します

4

1 に答える 1

0

答えが見つかりました。ストーリーボード参照で初期化する必要があります

于 2012-02-15T23:17:07.483 に答える