ios - 多个按钮的设计模式

标签 ios objective-c

<分区>

执行此操作的更好方法是什么(按钮越多代码越长)?

是否必须添加到数组(然后使用反射查看变量标题并提取正确的字符串?

//Load defaults
    _n1From = [HelperMethods getObjectUserDefault:AS_N1_FROM_UD];
    _n1To = [HelperMethods getObjectUserDefault:AS_N1_TO_UD];
    _n2From = [HelperMethods getObjectUserDefault:AS_N2_FROM_UD];
    _n2To = [HelperMethods getObjectUserDefault:AS_N2_TO_UD];
    _unionRate = [HelperMethods getObjectUserDefault:AS_UNION_RATE_UD];
    _unionHours = [HelperMethods getObjectUserDefault:AS_UNION_HOURS_UD];
    _nonUnionRate = [HelperMethods getObjectUserDefault:AS_NON_UNION_RATE_UD];
    _nonUnionHours = [HelperMethods getObjectUserDefault:AS_NON_UNION_HOURS_UD];

最佳答案

将按钮放入 IBOutletCollection 中,为每个按钮分配一个唯一的 tag 值,然后使用该标记在 NSArray 中查找参数将标签映射到参数。这是一个例子:

NSArray *tagToArg = @[@AS_N1_FROM_UD, @AS_N1_TO_UD, @AS_N2_FROM_UD, ...];
for (UIButton *b in allButtonsOutletCollection) {
    [HelperMethods configureButton:b withData:tagToArg[b.tag]];
}

标签为零的按钮将获得参数AS_N1_FROM_UD;带有标签 1 的按钮将得到 AS_N1_TO_UD,依此类推。

关于ios - 多个按钮的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782056/

相关文章:

ios - MR_saveToPersistentStoreAndWait 不保存数组中的数据

objective-c - 我应该在 Obj-C 中将所有原始数据类型初始化为 'safe' 值吗?

ios - 如何在 willDisplayCell 方法中配置 UITableViewCell?

ios - 使用 theos tweak 在收到的短信上启动应用程序

ios - SwiftUI - VStack 内的 ExpandableView

iOS 用户界面测试 : How to read app settings in UITest on iOS

ios - 为什么当我将 UILabel 移动到某个点时,它会在我进入全屏模式时移动?

ios - NSUserDefaults 在特定时间后清除其值

ios - 自 iOS 13.4 起不再显示购买对话框

C# PresentViewController 到 Storyboard 中的 View Controller