UIPIckerView出现但不是我在主故事板中创建的项目

时间:2015-09-30 20:46:21

标签: ios swift uipickerview

我正在尝试"返工"我的选择器视图如何在我的应用中显示和隐藏。我的一些问题可能是我让它以一种方式工作,现在我试图以不同的方式做,我不明白其中的区别。随着说:

我创建了一个测试项目,将此限制为当前问题。我有UIPickerViewToolbar有两个Bar Button Items,一个文本字段,其中将输入选择器视图值和文本标签。我通过隐藏选择器和工具栏开始ViewDidLoad。然后,当用户点按textField UIPickerView并显示Toolbar时。用户选择该值然后点击完成以隐藏选择器和工具栏。

以下是我的问题。当应用加载时,一切看起来都很好。然后,当我点击文本字段时,会出现灰色选择器,但没有数据。但是工具栏没有出现。我需要在主故事板中显示的选择器(没有灰色背景)并包含来自dataArray数组的数据。我也需要工具栏出现。非常感谢您的帮助。代码如下。

import UIKit

class ViewController: UIViewController, UIPickerViewDelegate {

@IBOutlet var myPickerView: UIPickerView!
@IBOutlet var pickerViewToolbar: UIToolbar!
@IBOutlet var textField: UITextField!

var dataArray = ["one", "two", "three", "four", "five"]

override func viewDidLoad() {
    super.viewDidLoad()

    hidePickerParts()
    textField.inputView = myPickerView
    self.myPickerView.removeFromSuperview()
}

func hidePickerParts() {
    self.myPickerView.hidden = true
    self.pickerViewToolbar.hidden = true
}

func showPickerParts() {
    self.myPickerView.hidden = false
    self.pickerViewToolbar.hidden = false
}

@IBAction func cancelPickerView(sender: AnyObject) {
    self.view.endEditing(true)
    hidePickerParts()
}

@IBAction func pickerViewDone(sender: AnyObject) {
    self.view.endEditing(true)
    hidePickerParts()
}

func textFieldDidBeginEditing(textField: UITextField) {
    showPickerParts()
    myPickerView.selectRow(0, inComponent: 0, animated: false)
}

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return self.dataArray.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return self.dataArray[row]
}

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    textField.text = dataArray[row]
    }

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

}

0 个答案:

没有答案