使一个按钮更改标签文本以在模式之间切换

时间:2013-07-14 17:31:48

标签: ios uibutton

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

对于if-then语句,我可以说像

  

如果label = x则,如果label = y则

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

1 个答案:

答案 0 :(得分:1)

  

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

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

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

以下是如何以MVS方式实现您的目标:

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

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

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