Я прошу прощения за этот вопрос, другие вопросы либо устарели, либо касаются встраивания кнопок в UIPickerView
У меня есть UIPickerView, который отображает 3 строки; как только мой пользователь выбрал строку, которую он хочет выбрать, я хочу, чтобы он нажал кнопку «Готово» (которая не встроена в сам UIPickerView; но отображается отдельно).
let strings = ["1", "2", "3"]
fileprivate let pickerView: UIPickerView = {
let pv = UIPickerView()
pv.translatesAutoresizingMaskIntoConstraints = false
return pv
}()
override func viewDidLoad() {
pickerView.delegate = self
pickerView.dataSource = self
}
let button: UIButton = {
let btn = UIButton()
btn.translatesAutoresizingMaskIntoConstraints = false
btn.setTitle("Done", for: .normal)
btn.addTarget(self, action: #selector(donePressed), for: .touchUpInside)
return btn
}()
@objc func donePressed(_ sender: UIButton) {
print("Done pressed")
//Pressing this should print whichever row is currently selected
}
extension ViewController: UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return strings.count
}
}
extension ViewController: UIPickerViewDelegate {
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
strings[row]
}