Приложение вылетает, если я прокручиваю UIPicker вниз - PullRequest
0 голосов
/ 29 марта 2019

Я почти закончил свое приложение и хотел попробовать 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, он не будет работать.

...