更改Swift中现有按钮的操作

时间:2014-09-20 20:46:55

标签: ios swift ios8

我想在MainTableViewController中将现有按钮的动作更改为func。如果我以编程方式创建按钮,这不是问题 - 但是使用Storyboard-Editor中的现有按钮,将不会调用该方法。

这里有什么问题吗?

class SignatureTableViewCell: UITableViewCell {

    @IBOutlet weak var signatureButton: UIButton!

    var formVC:FormTableViewController!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

    override init() {

        super.init()

        self.signatureButton.addTarget(formVC, action: "signatureButtonPressed:", forControlEvents: .TouchUpInside)

    }

2 个答案:

答案 0 :(得分:3)

您真的需要更改按钮调用的功能吗?

你可以让一个变量按住按钮状态并有一个switch语句来选择按钮的正确行为。

var buttonState : Int = ButtonStates.FIRST_STATE

func buttonCLick(button :UIButton)
{
  switch (buttonState)
    {
      case ButtonStates.FIRST_STATE:
        doMyFirstAction()
        break;
      case ButtonStates.SECOND_STATE:
        doMySecondAction()
        break;
      default;
        break;

  }
}

答案 1 :(得分:0)

尝试以下步骤。我偶然发现了它。

•保持 Storyboard ViewController 处于打开状态。
•单击要重新映射到另一个功能的按钮。
•打开右侧的 Utilities 窗格,然后选择Connections Inspector(左侧的第六个图标)。
•在“已发送操作”下,您的按钮将被映射到一个功能。
•将鼠标移到其上方,然后单击左上方出现的小叉形以删除该功能。 •单击并按住动作附近的小圆圈。 •将其拖动到要将按钮映射到的功能。

您完成了。