Как подключить несколько кнопок в раскадровке к одному действию?
В настоящее время я использую Xcode 4.6, и мне просто интересно, как выбрать несколько кнопок в разных UIView, но под одним контроллером представления. Щелчок CMD не работает. Мне нужна эта функциональность, потому что в Xcode 4.6 единственный способ позволить двум кнопкам на IB делиться одним и тем же действием - это выбрать их сразу, а затем перетащить действие на ваш контроллер представления.
Моя конечная цель - получить две разные кнопки на двух разных UIViews, чтобы соответствовать одному и тому же действию с использованием раскадровки в Xcode 4.6. Есть ли способ сделать это?
EDIT: я сейчас использую Xcode 4.6.1 без везения, обновление до 4.6.2.
Ответы
Ответ 1
Вы можете подключить несколько кнопок к одному действию, не выбирая их сразу.
Однако после создания действия вам нужно сохранить исходный файл, содержащий действие, прежде чем Xcode позволит вам подключить другой элемент управления к действию.
Я сделал это с помощью Xcode 4.6.2:
![подключение кнопок к действию]()
Ответ 2
Swift 3.0 Xcode 8.0 +
Подключите все кнопки к подписи метода.
Убедитесь, что отправитель аргументов имеет тип UIButton (или подкласс UIButton), чтобы подключить остальные кнопки из раскадровки.
@IBAction func dialconfigTapped(_ sender: UIButton) {}
Используйте sender.tag для идентификации нажатой кнопки.
Ответ 3
Выполните следующие шаги.
1. Создайте контроллер IBAction In View
В файле .h
-(IBAction)action:(id)sender;
В .m файле
-(IBAction)action:(id)sender{
}
2. Подключите все кнопки к этому действию
![enter image description here]()
3. Дайте каждой кнопке тег, следуя следующей картинке
![enter image description here]()
4. Теперь внутри вашей функции действия поместите эти
-(IBAction)action:(id)sender{
UIButton *button=(UIButton*)sender;
if(button.tag==1){
//your stuff!
}
if(button.tag==2){
//your stuff!
}
if(button.tag==3){
//your stuff!
}
}
Запуск и переход.
Ответ 4
Вы должны быть в состоянии сделать это в IB. В IB просто укажите их в том же IBAction
в соответствующем классе.
Когда действие наступит, если вы хотите узнать, с какой кнопкой вы получили действие, вы можете затем различать кнопки в методе IBAction
либо путем чтения текста с помощью кнопки, либо с помощью атрибута tag
который вы должны установить из IB.
- (IBAction)buttonClicked:(id)sender {
NSLog(@"Button pressed: %@", [sender currentTitle]);
NSLog(@"Button pressed: %@", [sender tag]);
}
Ответ 5
Вы можете использовать IBOutletCollection
, следующая ссылка поможет вам в использовании этого
http://useyourloaf.com/blog/2011/03/28/interface-builder-outlet-collections.html
Ответ 6
В Xcode 5 после установки действия для 1-й кнопки мне нужно создать приложение. Это позволяет мне подключить другие действия кнопок к этому же методу IBAction
Ответ 7
в xcode 4.6.3
вам больше не нужно сохранять, прежде чем назначать действие.