我有一个显示“报纸”(模型)实例详细信息的屏幕。我的屏幕的 ViewController 有这个 Newspaper 模型的一个属性。一个 Newspaper 实例包含多个 Article 实例,这些 Article 实例必须在屏幕中表示为 UIButtons。点击 UIButton 必须显示包含文章标题的警报消息。
将 UIButton 与 Article 模型相关联的一些好方法是什么?基本上,当点击 UIButton 时,如何检索 UIButton 对应的 Article 实例?
我目前有两种方法:
- 覆盖 UIButton,并为 Article 实例添加一个属性。
- 这违反了 MVC 模型,因为视图 (UIButton) 具有与模型 (Article) 的直接通信方式,但这将简化按钮操作,因为 UIButton 可以简单地调用其属性来知道将使用哪个 Article 实例来执行操作(显示包含文章标题的警报消息)。
- 创建一个 UIButton 的 NSArray (buttonsArray) 和一个 Article 实例的 NSArray (articlesArray)。
- buttonArray 的索引 0 对应articlesArray 的索引 0。与点击的 UIButton 关联的 Article 实例将基于按钮在数组中的位置。为了检索一个UIButton对应的Article,必须循环buttonsArray直到找到被点击的UIButton,然后使用相同的索引从articlesArray中获取Article。
有没有更好的方法来实现这一目标?
编辑:按钮将具有动画和手势识别器。此外,来自文章模型的按钮操作所需的信息不仅包括标题(例如文章位置,或者对象本身,如果它将被传递到另一个屏幕等)。