【问题标题】:How to make multiple UIButtons connect to the same IBAction?如何让多个 UIButtons 连接到同一个 IBAction?
【发布时间】:2013-01-26 20:12:19
【问题描述】:

我需要几个 UIButton 来连接到同一个 IBAction,这样按钮就可以执行相同的操作,而无需复制和粘贴代码。请告诉我是否有办法做到这一点!它可能就在我的眼皮底下,但我找不到。谢谢!

【问题讨论】:

  • 您在使用界面生成器吗?如果是这样,那么只需 [option] 将您的按钮拖到您的所有者文件中,然后选择您希望他们执行的任何 IBAAction。
  • stackoverflow.com/questions/16050516/… 这可能会有所帮助

标签: iphone xcode uibutton


【解决方案1】:

只需为每个按钮添加相同的目标和选择器:

[button1 addTarget:self
            action:@selector(buttonClicked:)
  forControlEvents:UIControlEventTouchUpInside];

[button2 addTarget:self
            action:@selector(buttonClicked:)
  forControlEvents:UIControlEventTouchUpInside];

 // etc.

【讨论】:

    【解决方案2】:

    为此,如果您正在使用 Outlet,则需要为每个按钮使用 set IBOutlet 或为每个按钮设置标签,然后使用此代码.h

    @interface RootViewController_Phone : UIViewController 
    {
    IBOutlet UIButton *btn1;
    IBOutlet UIButton *btn2;
    }
    - (IBAction)buttonPressed:(id)sender;
    -(void)CallButtonsMethod;
    @end
    

    现在在 .m 文件中

    - (IBAction)buttonPressed:(id)sender{
    if([sender isEqual:btn1])
    {
        [self CallButtonsMethod];
    }
    if([sender isEqual:btn2])
    {
       [self CallButtonsMethod];
    }
    }
    
    -(void)CallButtonsMethod
    {
     //your Code
    }
    

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        我发现我通常无法通过 Ctrl- 将 IB 中的多个按钮(甚至单个按钮)连接到代码中已经存在的 IBAction从按钮拖动到 m 文件中的 IBAction。 Xcode 尝试在拖到文件中创建一个新动作,但不会连接到现有动作。 [这适用于 Xcode 4.6.1 和几个以前的(可能是所有)版本。]

        如果 IBAction 位于视图控制器中,即包含按钮的视图的“文件所有者”,则以下链接中接受的答案中的方法有效:

        Connect object in .xib to existing IBAction

        但是,如果您希望 IBAction 位于视图自己的类中,而不是视图控制器的类中,则以下方法可行:

        • 首先将一个按钮拖到IB中的画布上。控制-拖动 视图的 .m 文件的按钮。

        • 将拖线拖放到代码实现部分的任何空白处。 在弹出的小对话框中定义一个新的 IBAction。所以现在你有一个 连接到 IBAction 的按钮。

        • 现在不再从对象库中拖动更多按钮,按住 按下 Option 键并从原来的按钮中拖出一个新按钮。 这个新按钮将连接到与 原来的。 (如果你需要创建很多很多的按钮和 这看起来很乏味,您可以同时选择一堆已经创建的,然后 按住 Option 键并拖动可一次性创建更多内容。)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-29
          • 1970-01-01
          • 2022-01-26
          • 2011-06-15
          • 2018-07-06
          • 2012-04-12
          • 2018-12-19
          相关资源
          最近更新 更多