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

我正在尝试将图像从一个视图控制器传递到另一个。我已经在 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");
}

}

【问题讨论】:

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

标签: ios objective-c uiviewcontroller uiimage uistoryboardsegue


【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      相关资源
      最近更新 更多