gpt4 book ai didi

ios - UIPickerView 选择将 nil 值发送到新的 ViewController

转载 作者:行者123 更新时间:2023-11-28 14:10:10 25 4
gpt4 key购买 nike

我试图将 UIPickerView 的选择作为字符串传递给新的 ViewController,不幸的是,当我这样做时返回的是 nil值(value)。我一直在关注几个不同的教程,但我似乎无法让它工作。如有任何建议,我们将不胜感激。

class menu: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

@IBOutlet weak var pickerView: UIPickerView!
@IBOutlet weak var newsButton: UIButton!

var pickerDataSource = ["Canterbury-Bankstown Torch", "Auburn Review", "Inner West Times", "Seniors "];
var chosenState = String()

override func viewDidLoad() {
super.viewDidLoad()
pickerView.delegate = self
pickerView.dataSource = self
}

func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerDataSource.count;
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerDataSource[row] as String
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
chosenState = pickerDataSource[row]
}

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "customSegue" {
if let secondViewController = segue.destination as? ViewController {
secondViewController.chosenState = chosenState
}
}
}

@IBAction func newsButton(_ sender: Any) {
self.performSegue(withIdentifier: "customSegue", sender: nil)
}

新的 viewController 包含:

    var chosenState: String?

override func viewDidLoad() {
super.viewDidLoad()

finalPublication?.text = chosenState
print(chosenState) //Just so I can see if it works
}

最佳答案

你使用了错误的方法 func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)

你应该使用这个:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "customSegue" {
if let secondViewController = segue.destination as? ViewController {
secondViewController.chosenState = chosenState
}
}
}

关于ios - UIPickerView 选择将 nil 值发送到新的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52639890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com