我向你们所有人提出了两天的脑力问题:
我通过使用UICollectionView(一行,水平滚动,固定数量的9个项目)在我的应用程序中集成了一个菜单。每个单元格都有自己的标记,并使用自己的原型单元格和自己的标识符。在cellForItemAtIndexPath期间,我将原型单元格分配给每个单元格(原型单元格包含故事板中的特定UIButton)。如果你单击一个单元格(相应的UIButton),一个弹出窗口应该打开(这很好用,因为弹出窗口锚定到集合视图而不是单元格 - 否则Xcode会出错,因为出口绑定到重复内容)。现在回答问题:
根据弹出窗口中的选定值,按钮的名称(titleLable.text)应该更改。我认为,IBOutlet是必需的,但不可用,因为可能(但没有发生)多次(重新)使用该单元格。
APP中的其他一些操作可能会随机发生,这会更改按钮的标签。因此,我认为也需要IBOutlet。
我试图给原型一个特定的标签,但是这个(在我看来)无法使用,因为在加载过程中我无法将标签分配给UIButton,因为并非所有单元都可见,因此无法访问在viedDidAppear ...
感谢任何帮助。这是一个旧问题的新尝试和collectionView直到昨天看起来很有希望。有什么想法要帮忙吗?非常感谢。我无法提供代码,因为90%的工作都是在IB中完成的。
答案 0 :(得分:0)
您可以使用NSNotificationCenter将消息从UIPopoverController发送到UICollectionViewCell。
Send and receive messages through NSNotificationCenter in Objective-C?
只需将UICollectionViewCell
子类化为MyCollectionViewCell
并在UICollectionView
中使用您的子类。
使用-(void)initWithFrame:(CGRect)frame
MyCollectionViewCell
方法,您应该以{{1}}的观察者身份订阅,并在NSNotificationCenter
中取消订阅。
超过所有细胞可能会收到通知并对其作出反应。 这不是接收回调的最佳方式,但可能是最简单的。