2015-09-04 3 views
0

Это вопрос повторения. Я попробовал несколько ответов, скопировав и вставив в x-код. Однако мои действия с кнопками никогда не вызываются.Сделать кнопку в swift

override func viewDidLoad() { 
    super.viewDidLoad() 

    let button = UIButton.buttonWithType(UIButtonType.System) as UIButton 
    button.frame = CGRectMake(100, 100, 100, 50) 
    button.backgroundColor = UIColor.greenColor() 
    button.setTitle("Test Button", forState: UIControlState.Normal) 
    button.addTarget(self, action: "buttonAction:", forControlEvents:UIControlEvents.TouchUpInside) 

    self.view.addSubview(button) 
} 

func buttonAction(sender:UIButton!) { 
    println("Button tapped") { 
} 

Любая идея, почему это не работает?

+0

Это странно, это выглядит правильно для меня. Вы можете нажать кнопку в пользовательском интерфейсе? – AdamPro13

+0

Кажется, я не могу. Я добавил другое название для UIControlState.Highlighted и название не изменяется. Есть ли другой способ проверить? – LeoReubelt

+0

Кроме того, кнопки, которые я создаю в xib, не работают либо после перетаскивания, чтобы создать IBAction. – LeoReubelt

ответ

0

buttonAction не привязан к элементу ui здесь. Вам нужно добавить @IBAction, как это:

@IBAction func buttonAction(sender:UIButton!) 

После этого, нажмите (и удерживайте нажатой) клавишу Ctrl на клавиатуре, затем нажмите и перетащите из вашей кнопки (вы должны увидеть синий тянущейся от него) пока не достигнете текста buttonAction(sender:UIButton!). Вы должны увидеть синий прямоугольник, появляющийся вокруг текста. Отпустите мышь и клавишу. Если вы видите черную точку в желобе (вертикальная полоса рядом с номерами строк), вы закончили!

+0

OP не использует Interface Builder. – Arbitur

0

Вместо:

let button = UIButton.buttonWithType(UIButtonType.System) as UIButton 

Использование:

let button = UIButton(type: .System) 

С учетом этого изменения, ваш код работал отлично.

-1
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 100)) 
Смежные вопросы