Swift 初学者,出现错误 UIPicker
Posted
技术标签:
【中文标题】Swift 初学者,出现错误 UIPicker【英文标题】:beginner with Swift with an error UIPicker 【发布时间】: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" and
ThirdSegue`。
请阅读错误信息。很清楚。
【参考方案1】:
您必须将第二个视图控制器的 segue 标识符设置为 SecondSegue
【讨论】:
【参考方案2】:您的SecondSegue
到您的第二个UIViewController
似乎没有正确命名。
注意,它区分大小写,必须准确命名为SecondSegue
。并且在更改名称后,不要忘记使用返回键验证您的输入。
【讨论】:
以上是关于Swift 初学者,出现错误 UIPicker的主要内容,如果未能解决你的问题,请参考以下文章
用 contentsOfDirectory Swift 填充 uipicker
从 NSArray 使用 UIPicker 获取 titleForRow - Swift
初学者 Swift:尝试将文本分配给 UILabel [重复]