如何将图像从集合视图传递到iphone中的详细视图

时间:2013-02-06 05:24:37

标签: iphone ios ios6

从远程XML中检索数据,我可以在集合视图中显示图像。从这个集合视图我试图显示一个详细的视图控制器,如果在集合视图控制器中单击一个图像,它应该在详细视图中显示图像。我被卡在这里,我无法显示详细视图控制器。我哪里错了?请指导我。

以下是我的收藏夹视图控制器,

- (void)viewDidLoad
  {
   [super viewDidLoad];
   xmlParser = [[MyXMLParser alloc] loadXMLByURL:@"http://MyXml.com/sample.xml"];
   myarray = xmlParser.arrayofimages;
  }

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
  {
    return 1;
  }

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
  {
    return [myarray count];
  }

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
  {
     MyCollectionViewCell *myCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath];
     if (!myCell) {
         myCell = [[MyCollectionViewCell alloc] initWithFrame:CGRectMake(0,0,myCell.frame.size.width , myCell.frame.size.height)];
     }
    [myCell.tweetImageView setImage:[myarray objectAtIndex:indexPath.row]];
    return myCell;
  }

- (void)collectionView:(UICollectionViewCell *)collectionView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
    DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@"MyCell" bundle:[NSBundle mainBundle]];
    detailVC.img= [myarray objectAtIndex: indexPath.row];
    [self presentViewController:detailVC animated:YES completion:nil];
  }

DetailView控制器

-(void)viewDidLoad
  {
   [super viewDidLoad];
   self.imageView.image = self.img;
  }

3 个答案:

答案 0 :(得分:1)

尝试使用Collection View Controller,

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

你错过了这一行。

答案 1 :(得分:1)

您没有展示您的详细视图控制器。你只是分配它。

而不是:

- (void)collectionView:(UICollectionViewCell *)collectionView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
    DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@"MyCell" bundle:[NSBundle mainBundle]];
    detailVC.img= [myarray objectAtIndex: indexPath.row];
  }

检查:

- (void)collectionView:(UICollectionViewCell *)collectionView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
    DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@"MyCell" bundle:[NSBundle mainBundle]];
    detailVC.img= [myarray objectAtIndex: indexPath.row];
   [self presentViewController:detailVC animated:YES completion:nil];
  }

答案 2 :(得分:1)

试试这个。在呈现视图后分配图像

DetailViewController *detailVC = [[DetailViewController alloc] initWithNibName:@"MyCell" bundle:[NSBundle mainBundle]];
       [self presentViewController:detailVC animated:YES completion:nil];
    detailVC.img= [myarray objectAtIndex: indexPath.row];