无法将 pickerView titleForRow 设置为 (String?, String?)
Posted
技术标签:
【中文标题】无法将 pickerView titleForRow 设置为 (String?, String?)【英文标题】:Can't set pickerView titleForRow as (String?, String?) 【发布时间】:2016-12-24 17:12:20 【问题描述】:我正在使用 CoreData,我试图在我的 UIPickerView
中有 2 个不同的列,其中包含 Stores 和 Item Type
当我运行它时,项目在“那里”,但它们显示为“?”
这是我的 titleForRow
函数的代码:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> (String?, String?)
//title
let store = stores[row]
let itemType = itemTypes[row]
// select store out of array of stores
return (store.name, itemType.type)
需要注意的是 Xcode 给我一个警告说:
实例方法 'pickerVIew(titleForRow:forComponent:)' 几乎匹配 可选要求 'pickerView(titleForRow:forComponent:)' 协议 UIPickerView
【问题讨论】:
【参考方案1】:你只能返回String
类型,不能返回元组。如果要添加两列,则需要设置
pickerView.numberOfComponents = 2
并检查component
参数,如:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
return component == 0 ? stores[row].name : itemTypes[row].type
【讨论】:
有效!非常感谢以上是关于无法将 pickerView titleForRow 设置为 (String?, String?)的主要内容,如果未能解决你的问题,请参考以下文章
无法在 -pickerView:accessibilityLabelForComponent: 方法中获取 pickerView.tag
无法在 Pickerview 中设置 inputAccessoryView 工具栏
无法通过 pickerView 从 plist 检索文本以在 UIScrollView 内的 UITextView 中滚动