多个UIPickerView在同一个UIView中

fse*_*lva 15 uipickerview ios swift

我是iOS开发人员的完全初学者,我想创建一个小iOS应用程序.在这个应用程序中,3 UIPickerViews应该显示不同的数据.

我的问题在于显示屏.我习惯在Android或Windows手机上开发,我不明白如何UIPickerViews用不同的数据填充.

这是我已编写的代码:

//
//  ViewController.swift
//  iphoneVersion
//
//  Created by fselva on 13/05/2015.
//  Copyright (c) 2015 fselva. All rights reserved.
//

import UIKit



class ViewController: UIViewController, UIPickerViewDelegate{



@IBOutlet weak var pickerView1: UIPickerView!
@IBOutlet weak var pickerView2: UIPickerView!
@IBOutlet weak var pickerView3: UIPickerView!

var test = ["Todo","Waiting","Maybe","Inbox","Note"]

var test2 = ["@Office","@Computer","@Home","@Meeting", "@Read", "@Achat", "@Call"]



override func viewDidLoad() {
    super.viewDidLoad()
    pickerView1.tag = 1
    pickerView2.tag = 2
    pickerView3.tag = 3
    // Do any additional setup after loading the view, typically from a nib.
}

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

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

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
    if pickerView2.tag == 2 {
        return test.count
    } else if pickerView3 == 3{
        return test2.count
    }
    return 1
}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

    if pickerView2 == 2 {
        return test[row]
    } else if pickerView3 == 3{
        return test2[row]
    }
        return ""
}


}
Run Code Online (Sandbox Code Playgroud)

@IBOutlet weak var pickerView1: UIPickerView!已经通过Ctrl + Click从故事板自动创建到ViewController.swift.

第一个UIPickerView目前应该什么都不显示.第二个应该显示test,第三个显示test2.

经过几个小时的互联网调查,我听说过标签来定义谁必须展示什么,但它不起作用.

我做错了什么,我在哪里错过了什么?

Chi*_*buZ 60

你不需要标签,只需使用:

 func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
        if pickerView == pickerView1 {
            //pickerView1
        } else if pickerView == pickerView2{
           //pickerView2
        }
Run Code Online (Sandbox Code Playgroud)

也不要忘记在IB或代码中设置委托:

pickerView1.delegate = self
Run Code Online (Sandbox Code Playgroud)