我有一个按钮 -(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/