2013-10-24 82 views
1

我試圖在作爲子類添加到MainCanvasController的2個不同視圖之間傳遞圖像。 的形象似乎獲得通過(它顯示,當打印到控制檯),但它不顯示任何內容... 這是我嘗試接收並顯示圖像C4在子類之間傳遞圖像

-(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]; 

我真的不知道發生了什麼問題。 (說實話,我根本不知道...)所以,任何提示都非常感謝!

+0

試試這個:C4Image * newNumber = [number copy];'然後改變新數字的中心,然後將新數字添加到畫布。 –

+0

剛剛嘗試過。它沒有區別 – suMi

+1

我在GitHub上發佈了代碼,以防萬一你想看看完整的東西:https://github.com/susemiessner/Urban-Alphabets/tree/master/Test_PostingImage (我說過感謝您的不斷幫助已經?!太棒了!謝謝!) – suMi

回答

1

我看了一下你的項目,找到了答案。

FirstView對象有變量稱爲secondView,這是正是相同的名稱,在主工作區中的對象。但是,儘管具有相同的名稱,但它們都是不同的對象。

我已經做了兩件事情:

1),而不是爲對象,使用特性接口文件中使用的變量。 2)在FirstView 類3)創建SecondView財產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參考目的。

您還沒有這樣做,所以您將圖像傳遞給名稱爲的對象的名稱爲,因爲該視圖在主工作區的畫布中可見。

+0

謝謝!我每天都在用C4/Objective C學習新東西! (如現在使用屬性)。 – suMi

+0

太棒了!C4背後的核心思想之一是,當你學習如何使用它時,你也在學習ObjC,因爲API的設計反映了相同的模式。 –