Я почти закончил свое приложение и хотел попробовать UIPicker для выбора других UIViewController, например FirstViewController, SecondViewController, ThirdViewController.Я пытался найти решение в прошлом году, но не смог, поэтому я избегаю использования UIPicker.Ошибка возникает, когда я пытаюсь использовать UIPicker, при прокрутке вверх он работает нормально, поэтому выбор чего-либо в UIPicker работает, но если я случайно прокручиваю вниз там, где на самом деле нечего выбирать, он часто вылетает с "не имеет смысла"с ошибкой идентификатора "CDM RulesSegue" ", теперь мой первый Segue называется Segue, и это единственный способ заставить его работать, но он падает при прокрутке вниз, если я назову это RulesSegue, он даже не запустится.Пожалуйста, смотрите мой код ниже
Самый простой способ описать, как я пытаюсь это исправить, - мои идентификаторы сегментов названы правильно, и он не запустится, но если я назову свой первый Segue, чтобы просто Segue, он работал.но все равно происходит сбой при случайном действии прокрутки вниз на UIPicker
class PaperWorkViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var pickerView: UIPickerView!
var pickerData = ["CDM Regulations","CDM Duties","Request for Info"]
var selectedDetail = ""
override func viewDidLoad() {
super.viewDidLoad()
pickerView.delegate = self
pickerView.dataSource = self
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func continueButtonPressed(_ sender: AnyObject) {
self.performSegue(withIdentifier: "\(selectedDetail)Segue", sender: nil)
}
// The number of columns of data
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
// The number of rows of data
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
// The data to return for the row and component (column) that's being passed in
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
//Called when the user changes the selection...
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selectedDetail = pickerData[row]
}
// Capture the picker view selection
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// This method is triggered whenever the user makes a change to the picker selection.
// The parameter named row and component represents what was selected.
}
}
UK [1886: 403119] *** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «Receiver () не имеет переходов с идентификатором 'CDM RulesSegue' '*** Первый стек вызовов броска:
Если я назову Segue CDM RulesSegue, он не будет работать.