2015-05-26 37 views
0

我有一兩天的腦破個問題給大家:UICollectionview與IBOutlet中,UIButtons不工作

我集成在我的應用程序菜單使用UICollectionView(一條線,橫向滾動,固定9個項目的數量)。每個單元都有自己的標籤,並使用自己的標識單元。在cellForItemAtIndexPath期間,我將一個原型單元格分配給每個單元格(原型單元格包含故事板中的特定UIButton)。如果你點擊一個單元格(相應的UIButton),應該打開一個彈出窗口(這很好,因爲popover被錨定到集合視圖而不是單元格 - 否則Xcode會給出錯誤,因爲出口綁定到重複內容)。我們的問題:

  1. 從酥料餅選定值

    依賴性,按鈕的名稱(titleLable.text)應該改變。我認爲,IBOutlet是必要的,但不可用,因爲可能(但未發生)多次(重複)使用該單元格。

  2. APP中的其他一些動作可能會隨機發生,這會改變按鈕的標籤。因此,我想,IBOutlet也是需要的。

我試着給原型特定的標籤,但是這(在我看來)無法使用,因爲我不能將變量分配到的UIButton,加載過程中,因爲不是所有的細胞都可見因此無法在viedDidAppear ...

任何幫助表示讚賞。這是一個老問題的新嘗試,直到昨天的collectionView看起來相當有前途。任何想法幫助?非常感謝。我不能提供代碼,因爲90%的工作都是在IB完成的。

回答

0

您可以使用NSNotificationCenter將消息從您的UIPopoverController發送到UICollectionViewCell。

Send and receive messages through NSNotificationCenter in Objective-C?

只要繼承UICollectionViewCellMyCollectionViewCell並使用你的子類中的UICollectionView

-(void)initWithFrame:(CGRect)frame方法MyCollectionViewCell您應該以觀察者的身份訂閱NSNotificationCenter,並取消訂閱dealloc

比您的所有細胞都可能收到通知並對其做出反應。 這不是接收回調的最佳方式,但可能是最簡單的方法。