C4在子类之间传递图像

时间:2013-10-24 10:01:29

标签: subclass subviews c4

我正在尝试在作为子类添加到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];

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

1 个答案:

答案 0 :(得分:1)

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

您的FirstView对象有一个名为secondView变量,其与主工作区中的对象完全相同。然而,尽管具有相同的名称,但这两者都是不同的对象。

我做了几件事:

1)不使用对象的接口文件中的变量,而是使用属性。 2)在SecondView课程中创建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对象。

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