iphone - 在 iOS 上,如何制作 "links"的动态列表或按钮调用带有字符串参数的方法?

标签 iphone ios uikit uibutton

似乎在 iOS 上使文本表现得像链接的常见方法是将其设为 UIButton,但我注意到 UIButton 的 addTarget 或 gestureRecognizer 的 addTarget 两者没有可以在按下按钮时传递给方法的参数?

情况是,我们可能会从服务器取回一个单词列表,例如“pineapple”、“apple”、“orange”,并且数字可能会有所不同。这些词显示在屏幕上,按下该词将调用 ViewController 来替换主视图 Controller 。

好像有一种方法是使用UIButton的tag,所以我们在设置button的时候,给它一个tag为0,在当前view或者viewcontroller的另一个数组中,让element 0指向一个NSString对象,包含单词“菠萝”。因此在处理程序中,可以获取标签,并可以使用它来检索字符串。但这是唯一的方法吗,因为它看起来不太结构化。有没有更好的办法?

最佳答案

我下意识的回答是简单地建议您对 UIButton 进行子类化。每当您想为现有类添加属性时,“子类”是第一个想到的答案。但是当我尝试子类化 UIButton 时,它并没有很好地工作。搜索“UIButton 子类”我发现这是一个众所周知的问题,有几个推荐的解决方案:

我尝试过创建 category with associative references 以及仅子类化 UIView 的简单方法,并使所需的按钮成为它的 subview 。两种方法都可以正常工作。但是,仅对 UIButton 进行子类化这一直觉上有吸引力的选项效果不佳

但是,虽然为 UIButton 对象添加属性的各种变通方法有效,但它们似乎不够直观,我倾向于回到简单的方法,例如使用 在数组或字典中标记数字,而不是追求这些繁琐的按钮子类化技术。

关于iphone - 在 iOS 上,如何制作 "links"的动态列表或按钮调用带有字符串参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549396/

相关文章:

iphone - 在 Settings.bundle 中存储密码并使用 CFPreferencesCopyAppValue 获取的安全隐患

iphone - 从 substringWithRange 获取泄漏

苹果手机 : Custom MKAnnotationView Callouts

ios - NSAttributedString 仅适用于 Helvetica Neue

ios - 使用 NSInvocation 时 ARM64 上的 EXC_BAD_ACCESS 崩溃

ios - CALayer vs. Layer-backed NSView 性能

javascript - 我们如何处理 TVML 的逻辑以及它可以与 UIKit 一起使用吗?

iphone - 获取输入附件 View 的 y 位置

iphone - 设置隐藏 : has unwanted delay

ios - 更改 UIAlertView 大小