2012-06-20 50 views
2

我試圖創建可重用組件以顯示某些照片集。 基本流程如下:將從自定義類加載的XIB的動作連接到故事板

  • 第一視圖:View。它包含我所謂的庫,以編程方式設計並通過分配自定義類從故事板加載
  • 我在模式視圖中拍攝照片,從「拍照」按鈕拍攝照片
  • 照片保存在磁盤上後,我問PhotoLib從光路檢測

創建一個新的PhotoCell我想我PhotoCell是觸摸啓用,因此,當我點擊它,它會打開一個模態的方式第二種觀點,但是從我讀,我不能做這從我的PhotoCell或UIImageView裏面(不是控制器)。

那麼我該怎麼辦? View嵌入在NavigationController中,即使未在下面的屏幕截圖中顯示。

謝謝!

View from XCode

+0

你能不能添加一個按鈕風格 「自定義」 上面的ImageView,並與這方面的工作?我做了這樣的事情如果我理解你的想法。也許你應該展示你的故事板和部分代碼來澄清。 – Protheus

+0

我可以,但我仍然不知道如何將其IBAction連接到我的代碼。如果我可以總結一下,我會盡量發佈更多信息 – dvkch

+0

是的,我已經重新閱讀了您的問題。也許你需要Photocell類中的協議,它有方法 - (void)didTapPhotoCell:(Photocell *)self或類似的東西,實現你的視圖作爲委託並從那開始行動? – Protheus

回答

2

如果您在photolib打造電眼,然後photolib應該執行從光電委託方法。但photolib本身不是rootviewcontroller,所以它應該自己聲明委託方法,並且包含的​​視圖應該實現它。

基本上你從自身通過光電池Photolib(實現委託方法

-(void) openPhotoCell:(Photocell*)cell 
{ 
    [self.delegate openPhotocell:(Photocell*)cell]; 
} 

,然後將其傳遞到View,這反過來將其打開。

它可能看起來像拔了牙從實際上來說,它的工作非常有效,如果你編寫好的自解釋代碼,這不是問題,我目前正在開發一個擁有數十個視圖和控制器的大型項目,它工作的很好,沒有人遇到問題。

如果你有更多的圖層,那麼也許你應該看看NSNotification。

希望它有幫助,我很樂意解釋更多。

UPD:

鏈接:

about delegates in cocoa fundamentals guide

delegation pattern in wikipedia

+0

它工作得很好,但我決定在PhotoLib中創建一個'delegate'屬性,並且每次創建一個'PhotoCell'時,我都從它設置它的委託。我認爲這將是更明顯的,因爲照片庫本身並不需要委託,但也許如果我需要創建一個功能齊全,易於使用的庫,那麼我將不得不做得更好 – dvkch

+0

@dvkch don'不用擔心,你做的事很正常。是的,將來你可能想重新實現它。但是,如果你的項目不會變得更復雜,你不必這樣做。 – Protheus

+0

好吧!謝謝 !我想將你的帖子設置爲已接受的答案,但是你可以添加一個鏈接,以便快速解釋代表將來的讀者嗎?'' – dvkch