2011-11-22 92 views
2

我有一個圖像傳輸的問題,我不明白。 如果用戶執行 「長按手勢」,我想在另一個控制器上顯示UIImageView的UIImage。另一個控制器將顯示,但我傳輸的圖像將不會顯示。Iphone:通過segue傳輸UIImage到另一個控制器

該按鈕通過模態故事板連接到第三個控制器。用戶可以捕捉圖像。在「ok」上,控制器切換回第一個,捕獲的圖像將顯示在UIImageView中。直到那裏沒有問題。 爲了實現向其他控制器的長按手勢指南,我將手勢放到故事板並將按鈕連接到它。如果用戶執行手勢以下功能將被執行

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"toPreview"]){ 
     PreviewViewController *pvc = (PreviewViewController *)[segue destinationViewController]; 
     [pvc setImage:signatureView.image]; 
    } 
} 

的signatureView是顯示用戶捕獲的圖像(在此情況下的簽名)的的UIImageView。 「setImage:(UIImage *)」函數是我嘗試過的許多可能性之一。

這裏是控制器的代碼,正如我已經說過我嘗試了許多可能性,但沒什麼previewImageView中顯示的通過的UIImage應該顯示圖像

@interface PreviewViewController : UIViewController 

@property(nonatomic, retain) IBOutlet UIImage *previewImage; 
@property (weak, nonatomic) IBOutlet UIImageView *previewImageView; 

- (void) setImage:(UIImage *)image; 

@end 

@implementation PreviewViewController 

@synthesize previewImage; 
@synthesize previewImageView; 

- (void) setImage:(UIImage *)image { 
    previewImage = image; 
    previewImageView.image = previewImage; 
    [previewImageView setNeedsDisplay]; 
} 

... 

。我試圖直接從第一個控制器寫入previewImageView的圖像,我通過了第一個控制器的完整UIImageView,...

我不明白我的錯是什麼。有誰能夠幫助我? 我使用的XCode 4.2和iOS 5 SDK

+0

我得到了解決方案。 請訪問以下鏈接: http://stackoverflow.com/questions/7864371/ios5-how-to-pass-prepareforsegue-an-object –

回答

0

你不能叫[pvc setImage:signatureView.image];因爲當prepareForSegue:被稱爲不存在signatureView。

您可以傳遞圖像的名稱並將其設置爲viewWillAppear

- (void)viewWillAppear { 
    [super viewWillAppear]; 
    [[self signatureView] setImage: [UIImage imageNamed: imageName]]; 
} 
+0

圖像不是一個文件,我寧願不節能它。在'prepareForSegue'內:我也對正常點擊作出反應,並與捕獲圖像的控制器一起工作。通過這種方式進行圖像傳輸。 'if([[segue identifier] isEqualToString:@「toSignature」]){ SignatureViewController * svc =(SignatureViewController *)[segue destinationViewController]; svc.sourceImageView = signatureView; }' – ben

+0

你是否試過在上面的代碼中做同樣的事情? – dasdom

+0

是的,那是我嘗試過的可能性之一。這就是我困惑的原因。它適用於這種情況,但不適用於其他... – ben

0

我認爲在iOS開發視圖控制器之間傳遞數據稱爲協議或@protocol。我討厭成爲'引用'的人之一,但那就是我會做的。歡呼聲

相關問題