【问题标题】:Delegate method or Global declaration to add action for UIButton?为 UIButton 添加操作的委托方法或全局声明?
【发布时间】:2017-04-27 05:03:18
【问题描述】:

在我的自定义视图中,我创建了一个按钮。为该按钮添加操作是可行的解决方案创建委托方法或将UIButton 声明为全局变量和addTaget。请给我建议。

【问题讨论】:

  • 一些上下文可能会有所帮助...
  • 如果您想在自定义视图中执行操作,那么您可以使用 addTarget。如果您想在添加视图的位置执行操作,那么您应该使用自定义委托。
  • 你想做什么?
  • 最好使用 addTarget。 [buttonName addTarget:self action:@selector(clickedButton:) forControlEvents:UIControlEventTouchUpInside]
  • 如果你只想在类里面调用这个方法,那么 UIButton 选择器方法是完美的。

标签: ios objective-c uibutton delegates addtarget


【解决方案1】:

我强烈建议不要尽可能使用全局变量。全局数据(常量)很好,但全局变量需要维护,因为任何人都可以修改它。

您可能需要全局变量的原因有两种:

  1. 它必须在多个不相关的子模块中触发不同的动作。我在这里推荐的是在类/函数中创建按钮和目标,并在目标中发送通知。让不同的子系统注册到通知并采取适当的行动
  2. 您只有一个类来执行操作项,但没有委托并使用全局变量会很方便。我要求您更喜欢设计而不是方便。

【讨论】:

    【解决方案2】:

    请不要使用全局变量。 你有两个相同的选择:

    1. 如果您使用自定义类,则必须使用委托方法
    2. 另一个选项是:您可以创建一个返回 UIButton 的方法 键入并使用此方法在任何类中的按钮上创建操作方法。

    注意:我强烈建议您必须使用委托方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多