Ios 通过preparesegue将图像从一个视图传递到另一个视图?
我正在尝试将图像从一个viewcontroller传递到另一个viewcontroller。我已经在stackoverflow上尝试了所有可用的解决方案,但我仍然在努力解决同样的问题。如何通过preparesegue传递uiimageIos 通过preparesegue将图像从一个视图传递到另一个视图?,ios,objective-c,uiviewcontroller,uiimage,uistoryboardsegue,Ios,Objective C,Uiviewcontroller,Uiimage,Uistoryboardsegue,我正在尝试将图像从一个viewcontroller传递到另一个viewcontroller。我已经在stackoverflow上尝试了所有可用的解决方案,但我仍然在努力解决同样的问题。如何通过preparesegue传递uiimage -(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ( [segue.identifier isEqualToString:@"filter"]) { Fil
-(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");
}
}您无法执行此操作,因为它尚未准备好
cvc.desktopview.image = image;
相反,您需要将其存储在UIImage
属性中,并在目标视图控制器的viewDidLoad
方法中使用它
在prepareForSegue
cvc.image = image;
和在视图控制器中
- (void)viewDidLoad
{
[super viewDidLoad];
self.desktopview.image = image;
}
编辑:
在视图控制器的头文件中需要此文件
@property (nonatomic, strong) UIImage * image;
你不能这样做,因为它还没有准备好
cvc.desktopview.image = image;
相反,您需要将其存储在UIImage
属性中,并在目标视图控制器的viewDidLoad
方法中使用它
在prepareForSegue
cvc.image = image;
和在视图控制器中
- (void)viewDidLoad
{
[super viewDidLoad];
self.desktopview.image = image;
}
编辑:
在视图控制器的头文件中需要此文件
@property (nonatomic, strong) UIImage * image;
转到
filtervewcontroller.h
在那里添加uiimage@属性(非原子,强)uiimage*dvImage代码>
转到filtervewcontroller.m
合成它@合成dvImage代码>
转到调用filtervewcontroller的代码
FilterViewController *cvc = [segue destinationViewController];
UIImage *image = imageView.image;
cvc.setDvImage = image;
NSLog(@"segue");
然后在viewdiload
中设置self.desktopview.image=dvImage代码>
不要忘记检查序列标识符
希望这有帮助转到filtervewcontroller.h
在那里添加uiimage@属性(非原子,强)uiimage*dvImage代码>
转到filtervewcontroller.m
合成它@合成dvImage代码>
转到调用filtervewcontroller的代码
FilterViewController *cvc = [segue destinationViewController];
UIImage *image = imageView.image;
cvc.setDvImage = image;
NSLog(@"segue");
然后在viewdiload
中设置self.desktopview.image=dvImage代码>
不要忘记检查序列标识符
希望这对优化方法有所帮助
[segue.destinationViewController setAnotherImage:yourImage];
另一个视图控制器
-(void)setAnotherImage:(UIImage *)happiness
{
//get your image here
}
优化方式
[segue.destinationViewController setAnotherImage:yourImage];
另一个视图控制器
-(void)setAnotherImage:(UIImage *)happiness
{
//get your image here
}
ViewDidLoad
仅在加载所有出口后调用,因此切勿尝试在prepare segue方法中设置出口/视图值,因为在prepare segue方法后将调用ViewDidLoad
。现在,您可以在filtervewcontroller
中创建UIImage属性并设置其值。在viewdiload
方法中,将其设置为specficimageViewviewdiload
仅在加载所有出口后调用,因此切勿尝试在prepare segue方法中设置出口/视图值,因为prepare segue方法后将调用viewdiload
。现在,您可以在filtervewcontroller
中创建UIImage属性并设置其值。在viewdiload
方法中,将其设置为specficimageView
这是一种正确的方法。你的NSLog叫什么?您如何知道映像未通过?请检查@“筛选器”是否确实是segue的名称;)在FilterViewController中访问图像的位置,以在ViewDidDisplay或ViewWillDisplay中访问图像。这是一种正确的方法。你的NSLog叫什么?您如何知道映像未通过?请检查@“筛选器”是否确实是segue的名称;)您在FilterViewController中访问图像的位置,以便在ViewDidDisplay或ViewWillDisplay中访问图像。我无法理解您的答案,cvc是viewcontroller,如何设置。图像。老兄,我是ios开发的新手。请帮助我。我不明白你的答案,cvc是viewcontroller,你如何设置。image。老兄,我是ios开发的新手。请帮帮我。用合成或_-dvimage谢谢你,伙计。你真是太棒了,伙计。你摇滚了\m/:D