通过preparesegue将图像从一个视图传递到另一个视图?

Posted

技术标签:

【中文标题】通过preparesegue将图像从一个视图传递到另一个视图?【英文标题】:Pass image from one view to another view by preparesegue? 【发布时间】:2014-01-22 10:38:31 【问题描述】:

我正在尝试将图像从一个视图控制器传递到另一个。我已经在 *** 上尝试了所有可用的解决方案,但我仍然在苦苦挣扎。我如何通过preparesegue传递uiimage?

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

if ( [segue.identifier isEqualToString:@"filter"]) 
    FilterViewController *cvc = [segue destinationViewController];
    UIImage *image = imageView.image;
    cvc.desktopview.image = image;
    NSLog(@"segue");

【问题讨论】:

这是正确的做法。你的 NSLog 被调用了吗?你怎么知道图片没有通过? 检查@"filter" 是否真的是segue 的名称;) 您在 filterViewController 中访问图像的位置 尝试在 viewDidAppear 或 viewWillAppear 中访问。 【参考方案1】:

转到FilterViewController.h

在那里添加一个uiimage @property(nonatomic,strong)UIImage *dvImage;

转到FilterViewController.m

合成它@synthesize dvImage;

转到您调用FilterViewController的代码

FilterViewController *cvc = [segue destinationViewController];
UIImage *image = imageView.image;
cvc.setDvImage = image;
NSLog(@"segue");

然后在viewDidLoad 中设置self.desktopview.image = dvImage;

别忘了检查 segue 标识符

希望对你有帮助

【讨论】:

使用合成或_dvImage 非常感谢老兄。你摇滚\m/:D【参考方案2】:

您不能这样做,因为它还没有准备好。

cvc.desktopview.image = image;

相反,您需要将其存储在 UIImage 属性中,并在目标视图控制器的 viewDidLoad 方法中使用它。

prepareForSegue 中的类似内容

cvc.image = image;

在视图控制器中

- (void)viewDidLoad

    [super viewDidLoad];

    self.desktopview.image = image;



编辑:

您需要在视图控制器的头文件中使用它。

@property (nonatomic, strong) UIImage * image;

【讨论】:

看不懂你的回答,cvc是viewcontroller,怎么设置.image。老兄,我是ios开发新手。请帮帮我。【参考方案3】:

ViewDidLoad 仅在所有 outlet 加载后才会调用,因此切勿尝试在 prepare segue 方法中设置 outlet/views 值,因为 viewDidLoad 将在 prepare segue 方法之后调用。现在您可以在filterViewController 中创建一个 UIImage 属性并设置其值。并在viewDidLoad 方法中将其设置为特定的imageView

【讨论】:

【参考方案4】:

优化方式

 [segue.destinationViewController setAnotherImage:yourImage];

另一个视图控制器

-(void)setAnotherImage:(UIImage *)happiness

    //get your image here

【讨论】:

以上是关于通过preparesegue将图像从一个视图传递到另一个视图?的主要内容,如果未能解决你的问题,请参考以下文章

从集合视图传递到视图控制器的简单图像数据失败

快速将图像从一个视图控制器传递到另一个视图控制器

将 ImageData 从一个视图控制器传递到另一个视图控制器

将图像从集合视图控制器快速传递到另一个视图控制器

将数据从一个视图控制器传递到另一个(图像)

如何将数据从一个单元格传递到另一个视图?