我正在尝试做一个pickerView和一个按钮,当你在pickerView中选择你的选项时,它会进入相关的页面。
到目前为止,当你在选择器视图中选择选项进入相关页面时,我已经到了这一点,但我想要的是选择,然后单击按钮转到页面。
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var pickerView: UIPickerView!
var selection = ["Page 1", "Page 2", "Page 3"]
override func viewDidLoad() {
super.viewDidLoad()
pickerView.dataSource = self
pickerView.delegate = self
}
@IBAction func SelectionBtn(_ sender: Any) {
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return selection.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let selected = selection[row]
return selected
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if (row == 0) {
performSegue(withIdentifier: "red", sender: self)
}
else if (row == 1) {
performSegue(withIdentifier: "blue", sender: self)
}
else {
performSegue(withIdentifier: "green", sender: self)
}
}
}
答案 0 :(得分:1)
获取一个额外的变量来存储有关您选择的行的信息。
var rowSelected:Int! = -1
将选定的行存储到此变量中。
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
rowSelected = row
}
在按钮操作期间,检查变量以执行所需的Segue。
@IBAction func actSegue(sender:Any){
if row == 0 {
performSegue(withIdentifier: "red", sender: self)
}...
....
}
答案 1 :(得分:0)
您可以使用pickerView.selectedRow(inComponent: 0)
@IBAction func SelectionBtn(_ sender: Any) {
let rowSelected = pickerView.selectedRow(inComponent: 0)
if (rowSelected == 0) {
performSegue(withIdentifier: "red", sender: self)
}
else if (rowSelected == 1) {
performSegue(withIdentifier: "blue", sender: self)
}
else {
performSegue(withIdentifier: "green", sender: self)
}
}