swift - 如何以编程方式为选择器 View 设置标签?

标签 swift uitextfield uipickerview

我正在使用 swift 构建 iOS 应用程序。

在我的 View Controller 中,我需要 6 个选择器 View 。

之前我使用 IB 创建了 PickerViews。

现在我想以编程方式进行,因为我想实现“完成”和“取消”按钮。

我创建了一个示例项目并进行了检查。我正在显示 pickerview。

但在我原来的应用程序中它不起作用。

可能是拾取器的数量很大。

每次选择器的标签值都显示为零。

我试过这样设置标签值,

pickerView.tag == 2

这是创建选择器的代码

 func createPicker1(){

        var pickerView = UIPickerView(frame: CGRectMake(0, 200, view.frame.width, 300))
        pickerView.tag == 2
        pickerView.backgroundColor = .greenColor()
        pickerView.delegate = self
        pickerView.dataSource = self
        pickerView.showsSelectionIndicator = true

        var toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.Default
        toolBar.translucent = true
        toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
        toolBar.sizeToFit()

        println(pickerView.tag)
        var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker1")
        var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "canclePicker1")

        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
        toolBar.userInteractionEnabled = true

        pwrd.inputView = pickerView
        pwrd.inputAccessoryView = toolBar     
    }

这些是我的选择器方法。

 func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {    
        return 1
    }
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
      if (pickerView.tag == 0){
            return categories.count
        }
        else
      {
        return skillNeeded.count
        }
    }
    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {

        if (pickerView.tag == 0)  {

            return categories[row]
        }
        else{
            return skillNeeded[row]
        }

    }
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    {
        if (pickerView.tag == 0) {
        user.text = categories[row]
        }
        else  {
        pwrd.text = skillNeeded[row]
        }
    }

谢谢。我们将不胜感激。

最佳答案

不要使用 == 设置值

试试 pickerView.tag = 2

关于swift - 如何以编程方式为选择器 View 设置标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31853329/

相关文章:

ios - swift 恢复购买

swift - 为什么不在 Swift 中使用可选值?

ios - UITextField 数字小键盘 : dot instead of comma for float values

Swift 文本字段的两个委托(delegate)函数

ios - 在 UIPickerView 问题中选择第一行

ios - XCode 系统配置和无法访问 ios 键盘

swift - 以编程方式设置 UIButton 内标签的框架大小

iphone - 在第一个 UITextField 完成编辑后制作第二个 UITextField 第一响应者并按完成

arrays - 将更新的数组数据传递给 uipickerview

iphone - UIPickerView 在运行时更改所选项目