ios - 使一键更改标签文本以在模式之间切换

标签 ios uibutton

我有一个按钮 -(IBAction)mode;,我希望它在每次按下时更改我的标签文本,以便像数字 watch 上的模式一样切换模式。然后我想在 if-then 语句中使用这些模式来进行不同的计算。

至于 if-then 语句,我可以这样说,

if label = x then, if label = y then

但是如何创建每次按下时更改同一标签文本的按钮?感谢您的帮助。

最佳答案

Then I would like to use these modes in if-then statements to make different calculations.

虽然你当然可以这样做,但我强烈建议你不要走这条路:在计算中使用标签的内容违背了 Model View Controller 模式的原则,因为标签内容是视觉表示的一部分,而计算是逻辑模型的一部分。

这不仅仅是一个理论上的问题 - 远非如此:使用标签内容会阻止本地化,并阻碍项目的 future 维护。

以下是如何以 MVS 方式实现您正在寻找的东西:

  • 定义一个模型类,用于存储按钮上可切换的当前模式
  • 在模型或 Controller 中定义基于当前模式执行计算的方法
  • 定义获取当前模式和根据需要切换模式的方法
  • 确保模型对象在您的项目中是单例
  • 在“view will appear”方法的 View 中从模型中读取模式,并相应地设置标签
  • 在按钮处理程序的代码中,读取当前模式,根据需要进行更改,存储新值,并相应地更新标签。

这听起来工作量很大,但这种方法的 Objective C 代码并不比直接从标签读取的方法长多少。

Here is a short example of setting up a model as a singleton in Objective C .

关于ios - 使一键更改标签文本以在模式之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641832/

相关文章:

ios - UIButton 在第一次加载时不响应触摸,但在从另一个 View Controller 返回后工作

iphone - 如果用户最初选择不接收推送通知,是否可以在 iOS 应用上激活推送通知?

ios - 将 NSNumber 实例与 isEqualToNumber 进行比较

ios - VoiceOver 将 UITableViewCell 中的 UIButton 读取为 "dimmed"

swift - 单击 uicollection 单元格中的按钮进行继续

ios - CoreData 不返回任何行

ios - UIViewAnimationTransitionFlipFromRight - 替代显示一张张卡片?

iOS Swift - 如何以编程方式为所有按钮分配默认操作

ios - UIButton 中的重复 UILabel

ios - 居中 UIButton,旁边有图像