Ios UIPIckerView出现,但不是我在主情节提要中创建的项目
我正在尝试修改我的选取器视图在我的应用程序中的显示和隐藏方式。我在这里的一些问题可能是,我有一种工作方式,现在正试图用另一种方式,我不理解其中的区别。话虽如此: 我已经创建了一个测试项目,将其限制在当前问题上。我有一个UIPickerView,一个带有两个工具栏按钮项的工具栏,一个输入选择器视图值的文本字段和一个文本标签。我在ViewDidLoad中首先隐藏选择器和工具栏。然后,当用户点击文本字段时,将显示UIPickerView和工具栏。用户选择该值,然后点击“完成”以隐藏选择器和工具栏 以下是我的问题。当应用程序加载时,一切看起来都很好。然后,当我点击文本字段时,会出现一个灰色选择器,但没有数据。但工具栏不会出现。我需要我放在主情节提要中的选择器,使其不出现灰色背景,并包含来自dataArray的数据。我需要工具栏也出现。谢谢你的帮助。代码如下Ios UIPIckerView出现,但不是我在主情节提要中创建的项目,ios,swift,uipickerview,Ios,Swift,Uipickerview,我正在尝试修改我的选取器视图在我的应用程序中的显示和隐藏方式。我在这里的一些问题可能是,我有一种工作方式,现在正试图用另一种方式,我不理解其中的区别。话虽如此: 我已经创建了一个测试项目,将其限制在当前问题上。我有一个UIPickerView,一个带有两个工具栏按钮项的工具栏,一个输入选择器视图值的文本字段和一个文本标签。我在ViewDidLoad中首先隐藏选择器和工具栏。然后,当用户点击文本字段时,将显示UIPickerView和工具栏。用户选择该值,然后点击“完成”以隐藏选择器和工具栏 以下
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.
}
}
为什么不提供您的测试项目呢。有更好的机会获得帮助。这是我的压缩项目的一个例子。