【发布时间】:2018-03-03 18:35:18
【问题描述】:
我正在构建一个简单的应用程序,它有一个 PickerView,其中包含 3 个选项,这些选项应该链接到 3 个 viewController,每个 viewController 分别命名为 FirstViewController、SecondViewController 和 ThirdViewController。
但是我收到了这个错误
> NSInvalidArgumentException', reason: 'Receiver (<Scroller.ViewController: 0x7ff7b5e0b670>) has no segue with identifier 'SecondSegue'
我在选择器中有三个选项和一个用于转到该选择的 viewController 的按钮:
我下面的代码在第一次加载然后崩溃时工作
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBAction func continueButtonPressed(_ sender: AnyObject) {
self.performSegue(withIdentifier: "\(chosenState)Segue", sender: nil)
print("no chance")
}
@IBOutlet weak var pickerView: UIPickerView!
var pickerData = ["First","Second","Third"]
var chosenState = ""
override func viewDidLoad() {
super.viewDidLoad()
print("Help")
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.
}
// The number of columns of data
// 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) {
chosenState = pickerData[row]
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
}
谁能帮我理解如何解决这个问题?
我给 Segues 命名了吗?它们的名称都相同 - 对吗?
【问题讨论】:
-
嗨,Boober Bunz 嗯,我错过了一些东西,我无法停止你在说什么,杰里米,你能给我更多帮助吗
-
" 他们的名字都一样——对吗?"不。根据您的代码,它们应该命名为
FirstSegue、SecondSegue" andThirdSegue`。 -
请阅读错误信息。很清楚。