gpt4 book ai didi

ios - Swift 中的第一个 iOS 应用程序 - UIPickerView 中的问号

转载 作者:可可西里 更新时间:2023-11-01 00:37:40 25 4
gpt4 key购买 nike

我正在开发我的第一个 Swift ios 应用程序。

无法将数据从 pickerData 获取到我的选择器中,但我只得到问号而不是实际值。我想这与委托(delegate)有关,但不确定哪里出了问题。

import UIKit
import CoreData

class NewWorkoutController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource {

@IBOutlet weak var workoutDistance: UITextField!

let pickerData = ["11","12","13","14","15"]

// Data Sources
func numberOfComponentsInPickerView(distancePickerView: UIPickerView) -> Int {
return 1
}
func pickerView(distancePickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
// Delegates
func pickerViewReturnRow(distancePickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return pickerData[row]
}
func pickerViewText(distancePickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
workoutDistance.text = pickerData[row]
}
func doneDistancePicker() {
workoutDistance.resignFirstResponder()
}
func cancelDistancePicker() {
workoutDistance.resignFirstResponder()
}

@IBAction func textFieldDistanceEditing2(sender: UITextField) {

// Create picker view
var distancePickerView: UIPickerView
distancePickerView = UIPickerView(frame: CGRectMake(0, 200, view.frame.width, 300))
distancePickerView.backgroundColor = .whiteColor()

distancePickerView.showsSelectionIndicator = true
distancePickerView.delegate = self
distancePickerView.dataSource = self

// Create toolbar
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()

// Create buttons
var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneDistancePicker")
var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancelDistancePicker")

// Assign buttons to toolbar
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.userInteractionEnabled = true

// Add pickerview and toolbar to textfield
workoutDistance.inputView = distancePickerView
workoutDistance.inputAccessoryView = toolBar

sender.inputView = distancePickerView
}

override func viewDidLoad() {
super.viewDidLoad()
}
}

最佳答案

这个函数的签名是错误的:

func pickerViewReturnRow(distancePickerView: UIPickerView, 
titleForRow row: Int,
forComponent component: Int) -> String!

应该是

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

因此该方法(为您的选择器中的行提供标题)未被调用。

关于ios - Swift 中的第一个 iOS 应用程序 - UIPickerView 中的问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com