swift - Xcode - 依赖 PickerView 选择
问题描述
我正在研究 UIPickerView。我需要使按钮依赖于另一个按钮。就像,button3 将依赖于 button2 的选择,而 button2 将依赖于 button1 的选择。
我尝试了所有“可能的”选项,但没有找到结果。期待解决方案。太感谢了。
这是我的代码:
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
//MARK:- IBOutlets
@IBOutlet weak var rslt1: UIButton!
@IBOutlet weak var rslt2: UIButton!
@IBOutlet weak var rslt3: UIButton!
@IBOutlet weak var rslt4: UIButton!
@IBOutlet weak var rslt5: UIButton!
@IBOutlet weak var rslt6: UIButton!
@IBOutlet weak var rslt7: UIButton!
@IBOutlet weak var button1: UIButton!
@IBOutlet weak var button2: UIButton!
@IBOutlet weak var button3: UIButton!
@IBOutlet weak var button4: UIButton!
@IBOutlet weak var button5: UIButton!
@IBOutlet weak var button6: UIButton!
@IBOutlet weak var button7: UIButton!
@IBOutlet weak var ImageView: UIImageView!
//MARK:- View Did Load
override func viewDidLoad() {
super.viewDidLoad()
}
//MARK:- Button Actions
@IBAction func button1Clicked(_ sender: Any) {
mainPicker.isHidden = false
mainPicker.delegate = self
mainPicker.dataSource = self
mainPicker.tag = 1
}
@IBAction func button2Clicked(_ sender: Any) {
mainPicker.isHidden = false
mainPicker.delegate = self
mainPicker.dataSource = self
mainPicker.tag = 2
}
@IBAction func buttonbutton3Clicked(_ sender: Any) {
mainPicker.isHidden = false
mainPicker.delegate = self
mainPicker.dataSource = self
mainPicker.tag = 3
}
@IBAction func button4Clicked(_ sender: Any) {
mainPicker.isHidden = false
mainPicker.delegate = self
mainPicker.dataSource = self
mainPicker.tag = 4
}
@IBAction func button5Clicked(_ sender: Any) {
mainPicker.isHidden = false
mainPicker.delegate = self
mainPicker.dataSource = self
mainPicker.tag = 5
}
@IBAction func button6Clicked(_ sender: Any) {
mainPicker.isHidden = false
mainPicker.delegate = self
mainPicker.dataSource = self
mainPicker.tag = 6
}
@IBAction func button7Clicked(_ sender: Any) {
mainPicker.isHidden = false
mainPicker.delegate = self
mainPicker.dataSource = self
mainPicker.tag = 7
}
let button1data = [“option 1”, "option 2”, "option 3”]
let button2data = [“A”: [“option 1”, "option 2”, "option 3”], “B”: [“option 1”, "option 2”, "option 3”], “C”: [“option 1”, "option 2”, "option 3”]]
//let button3data = [“option 1”, "option 2”, "option 3”]
let button4data = [“option 1”, "option 2”, "option 3”]
let button5data = [“option 1”, "option 2”, "option 3”]
let button6data = [“option 1”, "option 2”, "option 3”]
let button7data = [“option 1”, "option 2”, "option 3”]
//MARK:- Picker View Delegate and Datasources
func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
switch pickerView.tag {
case 1:
return button1data.count
case 2:
return button2data..count
case 3:
return button3data..count
case 4:
return button4data..count
case 5:
return button5data.count
case 6:
return button6data.count
case 7:
return button7data.count
default:
return 1
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
switch pickerView.tag {
case 1:
return button1data[row]
case 2:
return button2data[row]
case 3:
return button3data[row]
case 4:
return button4data[row]
case 5:
return button5data[row]
case 6:
return button6data[row]
case 7:
return button7data[row]
default:
return "Data not found"
}
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
switch pickerView.tag {
case 1:
rslt1.setTitle(button1data[row], for: .normal)
mainPicker.isHidden = true
case 2:
rslt2.setTitle(button2data[row], for: .normal)
mainPicker.isHidden = true
case 3:
rslt3.setTitle(button3data[row], for: .normal)
mainPicker.isHidden = true
case 4:
rslt4.setTitle(button4data[row], for: .normal)
mainPicker.isHidden = true
case 5:
rslt5.setTitle(button5data[row], for: .normal)
mainPicker.isHidden = true
case 6:
rslt6.setTitle(button6data[row], for: .normal)
mainPicker.isHidden = true
case 7:
rslt7.setTitle(button7data[row], for: .normal)
mainPicker.isHidden = true
default:
return
}
}
}
解决方案
推荐阅读
- grails-4 - Groovy 3 对 Grails 4.0.x 的支持
- tizen - 更新 Big Sur 后为 Mac 安装 Tizen Studio 3.7/4.1 的问题
- python - 如何根据 x 刻度更改条形图中条形的颜色?(Matplotlib,Python)
- json - 在反应中将其从 csv 转换为 json 后,根据字段对 Json 数据进行分组
- c# - 使用 Linq 或任何其他方式优化我的 c# 函数
- java - 我想使用焦点计时器应用程序为用户创建一个统计页面
- jquery - 如何在 vue.js 方法中编写 jquery 脚本
- sql - BigQuery:将动态文件夹名称插入 EXPORT DATA 语句
- linux - 当函数从 cron 运行时,PL/SQL NOTICE 没有记录在日志中
- xamarin - 在自己的设备上调试 xamarin 项目时部分 UI 消失