Search code examples
iosswiftuipickerview

Getting value from different pickerView


Currently I'm developing a mobile application using Xcode 7 Swift. My application use pickerView. I have 7 pickerView.

What I want to do is, to get the value of the every pickerView after press the button. But I don't know how. I'm still beginner in Xcode and Swift.

Here is my coding

    @IBOutlet weak var vomit: UIPickerView!
    @IBOutlet weak var headache: UIPickerView!
    @IBOutlet weak var muscle: UIPickerView!
    @IBOutlet weak var abdominal: UIPickerView!
    @IBOutlet weak var skin: UIPickerView!
    @IBOutlet weak var bleeding: UIPickerView!
    @IBOutlet weak var fever: UIPickerView!

    var pickerVomit: [String] = [String]()
    var pickerHead: [String] = [String]()
    var pickerMuscle: [String] = [String]()
    var pickerAbdominal: [String] = [String]()
    var pickerSkin: [String] = [String]()
    var pickerBleeding: [String] = [String]()
    var pickerFever: [String] = [String]()


    var vomitData = []
    var headData = []
    var muscleData = []
    var abdominalData = []
    var skinData = []
    var BleedingData = []
    var feverData = []


    @IBAction func backMenu(sender: AnyObject) {
        self.dismissViewControllerAnimated(true , completion: nil)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        //Looks for single or multiple taps.
        //let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
        //view.addGestureRecognizer(tap)

        vomitData = ["No","Yes"]
        headData = ["No","Yes"]
        muscleData = ["No","Yes"]
        abdominalData = ["No","Yes"]
        skinData = ["No","Yes"]
        BleedingData = ["No","Yes"]
        feverData = ["No","Yes"]

    }

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

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        if (pickerView.tag == 1){
            return vomitData.count
        }
        else if (pickerView.tag == 2){
            return headData.count
        }
        else if (pickerView.tag == 3){
            return muscleData.count
        }
        else if (pickerView.tag == 4){
            return abdominalData.count
        }
        else if (pickerView.tag == 5){
            return skinData.count
        }
        else if (pickerView.tag == 6){
            return BleedingData.count
        }
        else {
            return feverData.count
        }
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        if (pickerView.tag == 1){
            return "\(vomitData[row])"
        }
        else if (pickerView.tag == 2){
            return "\(headData[row])"
        }
        else if (pickerView.tag == 3){
            return "\(muscleData[row])"
        }
        else if (pickerView.tag == 4){
            return "\(abdominalData[row])"
        }
        else if (pickerView.tag == 5){
            return "\(skinData[row])"
        }
        else if (pickerView.tag == 6){
            return "\(BleedingData[row])"
        }
        else {
            return "\(feverData[row])"
        }

    }

I really hope someone can help me get through this. Thank you.


Solution

  • first of all you have 7 pickerview.

    @IBOutlet weak var vomit: UIPickerView!
    @IBOutlet weak var headache: UIPickerView!
    @IBOutlet weak var muscle: UIPickerView!
    @IBOutlet weak var abdominal: UIPickerView!
    @IBOutlet weak var skin: UIPickerView!
    @IBOutlet weak var bleeding: UIPickerView!
    @IBOutlet weak var fever: UIPickerView!
    

    And 7 array containing values according to pickerview.

    var vomitData = []
    var headData = []
    var muscleData = []
    var abdominalData = []
    var skinData = []
    var BleedingData = []
    var feverData = []
    

    Now, you want value from every picker for selected row when button clicked! so add following code in button action method,

    let int_Vomit = self.vomit.selectedRowInComponent(0)
    print("\(vomitData[row])")
    

    continue same for other pickerView's.