2014-01-21 3 views
-1

привет, я пытаюсь просмотреть изображение и описание формы tableview для detailviewcontroller, но не я не могу получить его. Я извлекаю сервер формы изображения, я сохранил URL-адрес изображения и используя json и php-кодирование. Я получаю URL-адрес изображения, используя NSURLConnectionDelegate, просматривая изображения и описание в виде таблицы.detailtableview контроллер, чтобы нажать изображение из tableview

У меня есть много способов просмотра этих изображений в виде таблицы, но получение изображений.

DetailView controller.h файл кодирование

#import <UIKit/UIKit.h> 
#import "image.h" 
@class image; 
@interface viewdetailpoliticalViewController : UIViewController<NSURLConnectionDelegate> 
{ 
    NSURLConnection *connection; 
} 


    @property (strong,nonatomic) NSString *value; 
    @property (strong,nonatomic) UIImage *imm; 

    @property (strong, nonatomic) IBOutlet UIImageView *imageview; 
    @property (strong, nonatomic) IBOutlet UILabel *dcp 
    @property (strong, nonatomic) NSMutableData *responseData; 

-(void)setDataSource:(image *)inImageOb; 
    @end 

это мой файл DetailView controller.m кодирования

#import "viewdetailpoliticalViewController.h" 
    #import "image.h" 
    @interface viewdetailpoliticalViewController() 

    @end 

    @implementation viewdetailpoliticalViewController 
    @synthesize imageview,dcp; 
    @synthesize value,imm; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
    { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
    } 

    - (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.imageview.image = self.imm; 
    self.dcp.text = self.value; 
// Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 


-(void)setDataSource:(image *)inImageOb 
{ 
    self.value = inImageOb.desp; 


    NSURL *url = [NSURL URLWithString:inImageOb.img]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
    self.responseData = [[NSMutableData alloc] init]; 

} 


- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data; 
{ 
    [self.responseData appendData:data]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection; 
{ 
    UIImage *image = [UIImage imageWithData:self.responseData]; 
    self.imm = image; 
} 


@end 

это мой TableView контроллера м файл кодирование:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [self performSegueWithIdentifier:@"Detailsegue" sender:indexPath]; 
    } 
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
     if ([segue.identifier isEqualToString:@"Detailsegue"]) { 

    viewdetailpoliticalViewController *detailvc = (viewdetailpoliticalViewController *)segue.destinationViewController; 

    NSIndexPath *indexPath =[self.mytableview indexPathForSelectedRow]; 

    [detailvc setDataSource:[imgevery objectAtIndex:indexPath.row]]; 


    } 
} 

это это код, который я использовал для получения данных с помощью json

-(void) retrieveData 
{ 
    NSURL * url = [NSURL URLWithString:getDataURL]; 
    NSData * data = [NSData dataWithContentsOfURL:url]; 

    json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; 



    imgevery =[[NSMutableArray alloc]init]; 

for (int i=0; i<json.count; i++) { 

    NSString * dd = [[json objectAtIndex:i]objectForKey:@"imgp"]; 
    NSString * plae =[[json objectAtIndex:i]objectForKey:@"disp"]; 
    image *myimg =[[image alloc]initWithimg:dd anddesp:plae]; 

    [imgevery addObject:myimg]; 

} 

    [self.mytableview reloadData]; 

} 

это код, я использовал для Tableview клетки

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 

    return 1; 
} 
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
return imgevery.count; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *cellIdentifier [email protected]"Cell"; 

imgpoliticalCell *cell =(imgpoliticalCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
if (cell== nil) { 


    cell = [[imgpoliticalCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
} 
[cell setDataSource:[imgevery objectAtIndex:indexPath.row]]; 

// cell.thumbImageView.image = _img; 


    return cell; 
} 
+0

что здесь о setDataSource: ?? – Yohan

+0

с использованием этого setdatasource для получения образов из базы данных – user3197287

+0

k Не могли бы вы объяснить немного больше, будет ли это проходить или нет detilvc? что есть o/p, вы получаете – Yohan

ответ

0

Нашли проблему проблема у передачи данных через Setimage Источник

вы установили образ в самой viewDidload после - (Недействительными) setDataSource: (изображение *) inImageOb только viewDidload() будет работать, но вы назначили изображение в ImageView в viewDidLoad() сам

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.imageview.image = self.imm; 
    self.dcp.text = self.value; 
// Do any additional setup after loading the view. 
} 
  • (аннулируются) connectionDidFinishLoading будет работать после того, как ViewDidLoad()

SO вы ве установить изображение в - (Недействительными) connectionDidFinishLoading: соединение (NSURLConnection *); только, который будет работать на последней, когда соединение didFinish так нравится этот

- (void)connectionDidFinishLoading:(NSURLConnection *)connection; 
{ 
    imm = [UIImage imageWithData:self.responseData]; 
    self.dcp.text = value; 
    self.imageview.image = imm; 

} 

Надежда теперь работает ...

Смежные вопросы