初学者使用Swift和错误选择器
我正在构建一个简单的应用程序,它有一个带有3个选项的PickerView,这些选项应该链接到3个视图控制器,每个视图控制器分别命名为FirstViewController、SecondViewController和ThirdViewController。初学者使用Swift和错误选择器,swift,uipicker,Swift,Uipicker,我正在构建一个简单的应用程序,它有一个带有3个选项的PickerView,这些选项应该链接到3个视图控制器,每个视图控制器分别命名为FirstViewController、SecondViewController和ThirdViewController。 但我得到了这个错误 > NSInvalidArgumentException', reason: 'Receiver (<Scroller.ViewController: 0x7ff7b5e0b670>) has no seg
但我得到了这个错误
> NSInvalidArgumentException', reason: 'Receiver (<Scroller.ViewController: 0x7ff7b5e0b670>) has no segue with identifier 'SecondSegue'
有人能帮我理解如何解决这个问题吗
我给赛格起名字了吗?它们的名称都相同-对吗?看来您的
第二个UIViewController
到第二个UIViewController
的名称不正确
小心,它区分大小写,必须准确命名为SecondSegue
。更改名称后,别忘了用返回键验证您的输入。您必须将second view controller的segue标识符设置为SecondSegueHi Boober Bunz-Hmm我遗漏了一些东西,我无法停止您所说的内容。您能给我多一点帮助吗“它们的名称都相同-对吗?”不。根据您的代码,它们应该被命名为FirstSegue
,SecondSegue”和
ThirdSegue`。请阅读错误消息。这很清楚。
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
}
}