1

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

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

如果标签 = x 那么,如果标签 = y 那么

但是,如何创建每次按下时都会更改相同标签文本的按钮?任何帮助表示赞赏。

4

1 回答 1

1

然后我想在 if-then 语句中使用这些模式来进行不同的计算。

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

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

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

  • 定义一个模型类,存储按钮上可切换的当前模式
  • 在模型或控制器中定义基于当前模式执行计算的方法
  • 定义获取当前模式并根据需要切换模式的方法
  • 确保模型对象是项目中的单例
  • 在“视图将出现”方法的视图中,从模型中读取模式,并相应地设置标签
  • 在按钮处理程序的代码中,读取当前模式,根据需要更改它,存储新值,并相应地更新标签。

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

这是一个在 Objective C 中将模型设置为单例的简短示例

于 2013-07-14T17:40:16.217 回答