0

UITableViewControllerからにURL を転送しようとしていますUIViewControllerが、何らかの理由で、送信された URL から画像が表示されませんUIImageView。これが私のコードです:

TableView.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *url = @"http://www.macdigger.ru/wp-content/uploads/2013/02/Apple-Nokia-Samsung-1.jpg";

    ImageViewController *imageView = [[ImageViewController alloc] init];        
    [self.navigationController pushViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"imageViewController"] animated:YES];

    [imageView setDetailItem:url];

}

ImageViewController.m

@interface ImageViewController ()
- (void)configureView;
@end

@implementation ImageViewController

- (void)setDetailItem:(id)newUrl
{
    NSLog(@"%@", newUrl);
    self.urlOfImage = newUrl;
    [self configureView];

}

- (void)configureView
{
        NSURL *url = [NSURL URLWithString:_urlOfImage];
        NSLog(@"%@",url); //There URL is normally displayed in the log
        NSData *data = [NSData dataWithContentsOfURL:url];
        UIImage *image = [UIImage imageWithData:data];
        _imageView.image = image;//And then the picture does not want to output
}

ログに渡された URL が表示されます (太字部分)。URL自体が渡されていることがわかりますがUIImageView、このURLからの画像は表示されません。

PPSデータはログに次の形式で表示されます。"<ffd8ffe1 00184578 69660000 49492a00 08000000 00000000 00000000 ffec0011 4475636b 79000100 04000000 460000ff e1031b68 7474703a 2f2f6e73 2e61646f 62652e63 6f6d2f78 61702f31 2e302f00 3c3f7870 61636b65 74206265 67696e3d 22efbbbf 22206964...>"

4

2 に答える 2

1

別の初期化子を作成してみませんか?

ImageViewController *imageView = [[ImageViewController alloc] initWithURL:urlToGo];

.m ファイルの上部:

@interface ImageViewController ()
@property (nonatomic, strong) NSURL *url;
@end

- (id)initWithURL:(NSURL *url){
   self = /* any kind of normal initialization, xib or storyboard */ [super init];
   if (self) {
       _url = url;
   }
}

- (void)viewDidLoad {
   [super viewDidLoad];
   [self configureView];
}
于 2013-02-18T16:16:44.810 に答える
1

ViewController がまだロードされていないため、エラーになる可能性があります。ロードされていsetDetailItemない場合は、すでにメソッドにロードされているかどうかを確認してください - viewDidLoad の configureView:

- (void)setDetailItem:(id)newUrl
{
    NSLog(@"%@", newUrl);
    self.urlOfImage = newUrl;
    if ([self isViewLoaded]) {
        [self configureView];
    }

}

- (void)viewDidLoad 
{
    [super viewDidLoad];
    if (self.urlOfImage) {
        [self configureView]
    }
}
于 2013-02-18T15:01:57.447 に答える