gpt4 book ai didi

ios - 对返回空数据的两个按钮使用相同的 pickerView

转载 作者:行者123 更新时间:2023-11-28 07:29:16 26 4
gpt4 key购买 nike

这是我的代码。我正在尝试将 UIPickerview 用于几个具有不同数据的按钮。但是当我运行我的项目时,它显示的是空白的灰色选择器 View 。有人告诉我我必须重新加载 pickerView 但我使用了它,例如“mainPV.delegate = self ..... 如果有人可以帮助我,我需要帮助

import UIKit

class SearchBuyVC: UIViewController {

@IBOutlet weak var optionV: UIView!

@IBOutlet weak var doneBtn: UIButton!
@IBOutlet weak var searchBtn: UIButton!

// picker view
@IBOutlet var mainPV: UIPickerView! // main
@IBOutlet var secPV: UIPickerView! //type
@IBOutlet var minPV: UIPickerView! //priceMin



@IBOutlet weak var typeBtn: UIButton!

@IBOutlet weak var PriceMinBtn: UIButton!

var optionSelector = 0
let searchData = ["Search by Areas", "Search by Map", "Search by LRT/MRTs", "Search by Schools", "Search by Propery Name"]

let typeData = ["All Residental", "All Commerical"]
let minNum = ["Any", "100 k", "200 k", "300 k", "400 k", "500 k", "600k ", "700 k"]

override func viewDidLoad() {
super.viewDidLoad()
setUpNav(arrowType: 2)

mainPV = UIPickerView()
secPV = UIPickerView()
minPV = UIPickerView()
mainPV.delegate = self
secPV.delegate = self
minPV.delegate = self

// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Dispose of any resources that
}

override func viewDidAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}

@IBAction func selectOptionsPressed(_ sender: Any) {

openOptions()
mainPV.delegate = self
secPV.delegate = self
minPV.delegate = self

}

@IBAction func typeSelect(_ sender: Any) {
openOptions()
mainPV.delegate = self
secPV.delegate = self
minPV.delegate = self
}


@IBAction func minPriceBtn(_ sender: Any) {
openOptions()
mainPV.delegate = self
secPV.delegate = self
minPV.delegate = self

}








@IBAction func donePressed(_ sender: Any) {
switch optionSelector {
case 0:
FiltersController.instance.showAreaFilter(nc: self.navigationController!)
case 1:
FiltersController.instance.showMapFilter(nc: self.navigationController!)
case 2:
FiltersController.instance.showTrainStations(nc: self.navigationController!)
case 3:
FiltersController.instance.showSchoolFilter(nc: self.navigationController!)
default:
FiltersController.instance.showNameFilter(nc: self.navigationController!)
}
closeOptions()
}

func openOptions() {
optionV.isHidden = false
mainPV.isHidden = false
minPV.isHidden = false
doneBtn.isHidden = false
secPV.isHidden = false
}

func closeOptions(){
optionV.isHidden = true
mainPV.isHidden = true
minPV.isHidden = true
doneBtn.isHidden = true
secPV.isHidden = true
}

@IBAction func nextPressed(_ sender: Any) {
ListingController.instance.showBuyListing(nc: self.navigationController!)
}
}

extension SearchBuyVC: UIPickerViewDelegate, UIPickerViewDataSource {


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

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {



if pickerView == mainPV {
return searchData.count
}

return 1
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == mainPV{
return searchData[row]
}
if pickerView == secPV{
return typeData[row]

}
if pickerView == minPV{
return minNum[row]
}
return ""
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
optionSelector = row
if pickerView == mainPV{
searchBtn.setTitle(searchData[row], for: .normal)
}
if pickerView == secPV{
typeBtn.setTitle(typeData[row], for: .normal)
}

if pickerView == minPV{
PriceMinBtn.setTitle(minNum[row], for: .normal)

}
}
}

最佳答案

还需要为pickerViews设置dataSource。这样调用的UIPickerViewDataSource方法负责将所有数据返回给UIPickerView。您的类必须确认 UIPickerViewDataSource 协议(protocol)。

例如:

picker_country.dataSource = self

关于ios - 对返回空数据的两个按钮使用相同的 pickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55454689/

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