1

我正在尝试在作为子类添加到 MainCanvasController 的 2 个不同视图之间传递图像。图像似乎已通过(在打印到控制台时显示)但它不显示任何内容......这就是我尝试接收和显示图像的方式

-(void)receiveNumber:(C4Image*)number{
    C4Log(@"number:%@", number);
    number.center=self.canvas.center;
    [self.canvas addImage:number];

    receivedImage=number;
    C4Log(@"received number: %@", receivedImage);

   }

这是我发布图片的方式

[secondView receiveNumber:originalImage];

我真的不知道出了什么问题。(嗯,老实说,我根本不知道......)所以任何提示都非常感谢!

4

1 回答 1

1

我查看了您的项目并找到了答案。

您的FirstView对象有一个名为的变量secondView,它与您的主工作区中的对象的名称完全相同。但是,尽管名称相同,但它们都是不同的对象。

我做了几件事:

1)不要在对象的接口文件中使用变量,而是使用属性。SecondView2)在您的FirstView类中创建一个属性 3)将属性设置为您工作区中firstView的同一对象,secondView

我的FirstView.h样子:

@interface FirstView : C4CanvasController{
    C4Label *goToSecondView;
}
@property (readwrite, strong) C4Window *mainCanvas;
@property (readwrite, strong) C4Image *postedImage;
@property (readwrite, strong) SecondView *secondView;
@end

我的postNoti:样子:

-(void)postNoti{
    C4Log(@"tapped");
    [self postNotification:@"changeToSecond"];
    [self.secondView receiveNumber:self.postedImage];
}

注意我摆脱了这[SecondView new];条线。

以下是您缺少的部分

我的工作区有以下行:

firstView.secondView = secondView;

它将第一个视图的变量设置为对secondView对象的引用。

您还没有这样做,因此您将图像传递给与在主工作区的画布上可见的视图同名的对象。

于 2013-10-25T21:44:47.220 回答