我坚持在UICollectionViewController中点击单元格时呈现完整的图像

时间:2014-03-13 09:14:41

标签: ios uicollectionview modalviewcontroller

我的应用程序中有一个UICollectionViewController,我想在用户点击它时在特定单元格中制作图像。

很抱歉这很麻烦,因为我是iOS的初学者。根据我的知识,它将以新的View controller呈现,如果是/否,那么如何?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果使用storyboard,只需将新的ViewController添加到场景中,然后按Ctrl-从CollectionView单元格拖动到ViewController以创建segue。如果您想要全屏,请选择模式。

在CollectionViewController类中,您需要将图像引用传递给Detail ViewController的属性。您需要使用公共属性,因为在加载detailVC时尚未设置图像的插座。实例化后,您只需将图像设置为Outlet即可显示它。

MyCVC.m(UICollectionViewController的子类)

#import "MyCVC.h"
#import "DetailVC.h"

@interface MyCVC ()

@end

@implementation MyCVC

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"detailSegue"] && [segue.destinationViewController isKindOfClass:[DetailVC class]]) {

        DetailVC *detailVC = segue.destinationViewController;
        detailVC.image = sender.image; // or any other reference to the actual image to display
    }
}

@end

<强> DetailVC.h

#import <UIKit/UIKit.h>

@interface DetailVC : UIViewController

@property (strong, nonatomic) UIImage *image;

@end

<强> DetailVC.m

#import "DetailVC.h"

@interface DetailVC ()

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

@end

@implementation DetailVC

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.imageView.image = self.image;
}

@end

enter image description here