2015-03-26 2 views
0

Я создал функцию, на мой взгляд контроллера, как это:Как подключить несколько UIButtons к одному событию IBAction и получать?

@IBAction func dayOfWeekActions(sender: UIButton) { 

    } 

Затем я подключен эту функцию на несколько кнопок, которые надлежащим образом соединили «Touch Up Inside» действия к нему (инспектор Connections показывает правильные соединения) ,

Однако, когда я нажимаю кнопки, эта функция никогда не вызывается.

Почему функция не вызвана? Что я пропустил, связав все это вместе?

+0

Это должно сработать. Откуда вы знаете, что это не называется? Нажимают ли кнопки при затемнении при нажатии? – rdelmar

+0

Кнопки тусклые. Тем не менее, я могу сказать, что он не вызван, потому что он никогда не попадает в строку (или ничего внутри функции), когда установлена ​​точка останова. И для отладки пещерного человека я также проверил, что 'println()' inside ничего не делает. –

+0

Трудно сказать, что тогда не так, так как оно, вероятно, имеет какое-то отношение к соединениям, которые вы сделали в IB. Нет ничего особенного в подключении нескольких кнопок к одному методу. Он должен работать так же, как если бы вы только подключили его. – rdelmar

ответ

0

Я помню, как сам переживал эту проблему. Я не мог найти способ использовать IB для этого (но я помню, что в предыдущем воплощении Xcode это было возможно)

Альтернативой является подключение всех кнопок к коллекции Outlet, а затем в viewDidLoad итерации по коллекции addTarget: действие: forControlEvents: каждой кнопке.

@IBOutlet var buttons: [UIButton]! 

override func loadView() { 
    super.loadView() 
    for button in buttons { 
    button.addTarget(self, action: "dayOfWeekActions:", forControlEvent: .TouchUpInside) 
    } 


} 
+0

Пробовал это, но, к сожалению, результаты те же. Спасибо за ваше предложение. У меня должно быть что-то принципиально неправильное в проекте, и я просто не вижу его. –

+0

Похоже, у вас может быть что-то, блокирующее кнопки? –

Смежные вопросы