Ответ Vacawama работает отлично, и он хорошо подходит для вопроса, который вы задаете, но я не советую использовать теги. Они хрупкие. Вы должны помнить, чтобы установить теги в вашей раскадровке, и если вы что-то измените, легко забыть сохранить их.
Вместо этого я бы предложил использовать отправителя в ответе Вакавамы, чтобы выяснить, какой элемент управления был использован:
var controls: [UISegmentedControl]!
override func viewDidLoad() {
super.viewDidLoad()
controls = [segmentedControl1, segmentedControl2, segmentedControl3]
}
@IBAction func answerClicked(_ sender: UISegmentedControl) {
if let index = controls.index( { where sender === $0 } ) {
//act on your index
} else {
//error case; could not find sender in controls array. (Should not happen)
}
}
Edit:
Или, если вы хотите использовать оператор switch, вы можете написать его следующим образом:
@IBAction func answerClicked(_ sender: UISegmentedControl) {
switch sender {
case segmentedControl1:
//code for control 1
case segmentedControl2:
//code for control 2
case segmentedControl3:
//code for control 3
default:
//error case
//break
}
}