按下新的以编程方式创建的按钮时如何设置?

时间:2015-10-04 04:44:05

标签: ios xcode swift segue

我使用以下代码在Swift中以编程方式创建了一个Button:

    let image = UIImage(named: "pin") as UIImage?
    let button = UIButton();
    button.setTitle("Add", forState: .Normal)
    button.setTitleColor(UIColor.blueColor(), forState: .Normal)
    button.setImage(image, forState: .Normal)
    button.frame = CGRectMake(15, -50, 200, 38)
    button.center = CGPointMake(190.0, 345.0);// for center
    self.view.addSubview(button)

我有一个单独的函数来尝试将我的segue与标识符segueOnPin一起使用:

 @IBAction func segueToCreate(sender: UIButton) {
    // do something
    performSegueWithIdentifier("segueOnPin", sender: nil)
}

但是,我认为新的UI按钮没有正确连接到第二个功能,因为它不起作用。我通常将它连接到StoryBoard上。但是,新按钮不在StoryBoard上,因为它是以编程方式创建的。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您永远不会为按钮设置目标。 在代码中添加以下行。

button.addTarget(self, action: "segueToCreate:", forControlEvents: UIControlEvents.TouchUpInside)

答案 1 :(得分:1)

  

然而,新的按钮不在StoryBoard上,因为它正在   以编程方式创建。我该如何解决这个问题?

您需要设置按钮的操作,如下所示:

button.addTarget(self, action: "segueToCreate:", forControlEvents: UIControlEvents.TouchUpInside)