从远程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;
}
答案 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];