Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 通过preparesegue将图像从一个视图传递到另一个视图?_Ios_Objective C_Uiviewcontroller_Uiimage_Uistoryboardsegue - Fatal编程技术网

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

Ios 通过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

我正在尝试将图像从一个viewcontroller传递到另一个viewcontroller。我已经在stackoverflow上尝试了所有可用的解决方案,但我仍然在努力解决同样的问题。如何通过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");
}

}

您无法执行此操作,因为它尚未准备好

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
方法中,将其设置为specfic
imageView

viewdiload
仅在加载所有出口后调用,因此切勿尝试在prepare segue方法中设置出口/视图值,因为prepare segue方法后将调用
viewdiload
。现在,您可以在
filtervewcontroller
中创建UIImage属性并设置其值。在
viewdiload
方法中,将其设置为specfic
imageView

这是一种正确的方法。你的NSLog叫什么?您如何知道映像未通过?请检查@“筛选器”是否确实是segue的名称;)在FilterViewController中访问图像的位置,以在ViewDidDisplay或ViewWillDisplay中访问图像。这是一种正确的方法。你的NSLog叫什么?您如何知道映像未通过?请检查@“筛选器”是否确实是segue的名称;)您在FilterViewController中访问图像的位置,以便在ViewDidDisplay或ViewWillDisplay中访问图像。我无法理解您的答案,cvc是viewcontroller,如何设置。图像。老兄,我是ios开发的新手。请帮助我。我不明白你的答案,cvc是viewcontroller,你如何设置。image。老兄,我是ios开发的新手。请帮帮我。用合成或_-dvimage谢谢你,伙计。你真是太棒了,伙计。你摇滚了\m/:D