2017-02-20 15 views
0

я ма делаю программу в WebService ... В главном ViewController ....Как установить изображение с основного видаController на tableView ячейку в объективе C?

AppListTableViewController *appList = [self.storyboard instantiateViewControllerWithIdentifier:@"ALTVC"]; 

self.dataTask = [self.urlSession dataTaskWithRequest:self.urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

    NSMutableDictionary *serverRes = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

    NSString *imageLink = [[[[[[serverRes objectForKey:@"feed"] objectForKey:@"entry"] objectAtIndex:0] objectForKey:@"im:image"] objectAtIndex:0] objectForKey:@"label"]; 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:imageLink forKey:@"image"]; 

    [self.dataTask resume]; 
} 

    [self.navigationController pushViewController:appList animated:YES]; 

Из ссылки изображения сервера пришли успешно ... но, как отправлять и отображать это изображение в Tableview ячейке.

В контроллере Tableview ....

cell.imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[defaults objectForKey:@"image"]]]]; 

Это не выводит изображение в ячейке ...

ответ

1

причина вы были вытеснены ваши VC до завершения по вызову, как сделать

self.dataTask = [self.urlSession dataTaskWithRequest:self.urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)  { 

    NSMutableDictionary *serverRes = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

    NSString *imageLink = [[[[[[serverRes objectForKey:@"feed"] objectForKey:@"entry"] objectAtIndex:0] objectForKey:@"im:image"] objectAtIndex:0] objectForKey:@"label"]; 

    if (imageLink) 
    { 
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:imageLink forKey:@"image"]; 
     // call your navigation inside the block 
     AppListTableViewController *appList = [self.storyboard instantiateViewControllerWithIdentifier:@"ALTVC"]; 
     [self.navigationController pushViewController:appList animated:YES]; 
    } 


    }]; 

    [self.dataTask resume]; 
+0

для асинхронной загрузки изображения в ячейку tableview, см. Эту ссылку [http://stackoverflow.com/questions/16663618/async-image-loading-from-url-inside-a-uitableview-cell-image-changes -to-wrong) –

+0

он работает, благодарю вас, брата. – Marking

+0

@ VadlaniMarking - welcome bro –