2016-05-02 9 views
0

プロトコルを使いたい。私はこのコレクションビューに属するコレクションビューとコレクションビューのセルを持っています。このセルにボタンがあります。ユーザーがこのボタンをタップすると、コレクションビュークラス(セルクラスではありません)でメソッドを呼び出したいと思います。Swiftでプロトコルを使用する

私は次のコードで私のセルクラスを定義しています:

protocol testPro { 
    func replyClicked() 
} 

class MessageGalleryViewControllerCellCollectionViewCell: UICollectionViewCell { 

    var test1: testPro? 

    // ... 
} 

次に、ユーザは、セルクラスのメソッド次のボタンシステムコールにタップしたとき。

func replyAction(sender:UIButton!) 
{ 
    test1?.replyClicked() 

} 

そして私のコレクションビュークラス

​​

しかし、私は、 "クリック" などの任意のログを見ることができません。それで、うまくいきません。問題はどこだ?

+0

ここで、セルの 'testPro'を設定していますか?セルをインスタンス化した後、 'cellForItemAtindexPath'のビューコントローラに戻す必要があります。 – JAL

+0

もっと説明できますか?また、これをチェックしてください:http://prntscr.com/azjkdd –

+0

'cell.test1 = self' – JAL

答えて

0

あなたのセルにtest1を割り当てていません。 cellForItemAtindexPathにセルをインスタンス化した後にcell.test1 = selfと入力します。

関連する問題