带有数组的集合/表视图的详细视图?

Posted

技术标签:

【中文标题】带有数组的集合/表视图的详细视图?【英文标题】:Detail views with Collection/Table Views populated with an Array? 【发布时间】:2014-11-09 20:01:09 【问题描述】:

我在两个不同的情况下遇到了类似的问题,但我觉得解决一个问题会解决另一个问题。我是菜鸟。我正在使用一个收藏视图来填充一个 NSArray 的照片库。集合视图工作得很好,并以正确的顺序填充正确的图像。我只是不知道如何让详细视图与我专门拥有的代码一起正常工作。我在 .h 文件中设置了我的代表:

@interface PhotoViewController : UICollectionViewController <UICollectionViewDelegate, UICollectionViewDataSource>

NSArray 看起来像这样:

#import "PhotoViewController.h"
#import "PhotoViewCell.h"
#import "ImageDetailController.h"

@interface PhotoViewController ()

@end

@implementation PhotoViewController 

    NSArray *array;



- (void)viewDidLoad 

        array = [[NSArray alloc]initWithObjects:@"walkerthumb.png",@"farmerthumb.png",@"unrulythumb.png",@"fetchthumb.png",@"walkerthumb.png",@"farmerthumb.png",@"unrulythumb.png",@"fetchthumb.png",@"walkerthumb.png",@"farmerthumb.png",@"unrulythumb.png",@"fetchthumb.png",@"walkerthumb.png",@"farmerthumb.png",@"unrulythumb.png",@"fetchthumb.png",@"walkerthumb.png",@"farmerthumb.png",@"unrulythumb.png",@"fetchthumb.png",@"walkerthumb.png",@"farmerthumb.png",@"unrulythumb.png",@"fetchthumb.png", nil];

    [super viewDidLoad];
    // Do any additional setup after loading the view.







-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 



    PhotoViewCell *cell = (PhotoViewCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

    [[cell myImageView]setImage:[UIImage imageNamed:[array objectAtIndex:indexPath.item]]];

    return cell;







-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 

    return [array count];



在我的单元格的头文件中,我有这样的图像属性:

@property (weak, nonatomic) IBOutlet UIImageView *myImageView;

我正在尝试根据单击的图像推送不同的详细信息视图。我知道它必须再次涉及某种数组,但我只是不知道如何实现它。我不知道如何告诉 Collection View 该怎么做。我在网上尝试过的教程都没有奏效。

【问题讨论】:

你能展示你的didSelectItemAtIndexPath方法吗? 我没有那个。我是不是该?我基本上只有我发布的内容,其中有 cellForItemAtIndexPath。 这是当用户选择(点击)您的一个集合视图单元格时调用的委托方法 - 所以这通常是您用来移动到详细视图的方法。 好的,谢谢,我得研究一下如何实现它,但这为我指明了正确的方向。 看看这个raywenderlich.com/22324/… 【参考方案1】:

您必须实现以下方法才能获得点击 集合视图中的项目。 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath: (NSIndexPath *)indexPath //indexPath 将返回点击的行索引和节。

【讨论】:

以上是关于带有数组的集合/表视图的详细视图?的主要内容,如果未能解决你的问题,请参考以下文章

将数据从集合视图单元格内的表视图单元格传输到另一个集合视图单元格 [带图片!]

如何在swift中最初打开一个表视图到选定的详细视图

将静态表视图单元链接到详细的 UINavigationController

如何从表视图控制器转到详细控制器并返回

带有有限单元格的集合视图滚动

数组数据在 swift 4 的表视图中重复