2016-05-02 3 views
0

Я хочу использовать протоколы. У меня есть ячейки просмотра коллекции и коллекции, которые относятся к этому представлению коллекции. У меня есть кнопка в этой ячейке. Я хочу вызвать метод в классе collectionview (не класс ячейки), когда пользователь нажал эту кнопку.Использование протокола в Swift

я определяю мой мобильный класс с помощью следующего кода:

protocol testPro { 
    func replyClicked() 
} 

class MessageGalleryViewControllerCellCollectionViewCell: UICollectionViewCell { 

    var test1: testPro? 

    // ... 
} 

Затем, когда пользователь нажимает на кнопку системного вызова следующего метода в клеток класса.

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

} 

И мой класс коллекции вид:

class ReceivedPhotosViewController: UIViewController,UICollectionViewDelegateFlowLayout, UICollectionViewDataSource, testPro { 

    func replyClicked() { 
     print("clicked") 
    } 
} 

Но я не могу видеть, как журнал "щелкнул". Так что это не работает. В чем проблема?

+0

Где вы устанавливаете 'testPro 'ячейки? Вы должны установить его обратно в контроллер представления в 'cellForItemAtindexPath' после создания экземпляра ячейки. – JAL

+0

Можете ли вы объяснить больше? Также проверьте это: http: //prntscr.com/azjkdd –

+0

'cell.test1 = self' – JAL

ответ

0

Вы не назначаете свой test1 в свою камеру. В вашем cellForItemAtindexPath положите cell.test1 = self после создания экземпляра ячейки.