2013-07-14 29 views
1

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

对于假设性陈述,我可以这样说,

如果标签= X那么,如果标签= y,则

但你如何创建按钮每次推送时都会更改同一标签的文字?任何帮助表示赞赏。

回答

1

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

虽然你当然可以这样做,我会强烈建议你对走这条路:利用计算标签的内容违背了模型 - 视图 - 控制器模式的粮食,因为标签的内容是视觉的一部分表示,而计算是逻辑模型的一部分。

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

这里是如何实现你在使用MVS方式找什么:

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

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

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

+0

谢谢您的回复。这听起来很精彩......而且很复杂......看起来像我要打开书来找出如何做到这一点。当谈到Xcode(还没有)时,我并没有那么先进。 –