我有一个包含13个单元格的UITableView。
我需要为每个使用Picker Wheel选择选项,但我不想或者认为我需要创建13个View控制器,而VC上只有一个Picker Wheel。
我猜我只能使用一个视图控制器来执行此操作。我可以使用else-if语句并重用与UIPickerView相同的View Controller吗?
这样我只有一个View Controller to Segue to和一个.swift文件链接到它而不是13个VC和13个.swift文件。
答案 0 :(得分:0)
几乎所有的UIKit工具都是为了重用而构建的。您需要关注的是UIPickerViewDataSource和UIPickerViewDelegate协议。符合这些协议将迫使您实现发送pickerView数据所需的方法。
有一些与这些协议相关的方法,它们都在定制表的某些方面起作用,并且在修改用户将在表上看到的内容时非常有用。例如:
optional func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!
是一种允许您修改'标题的方法。 (UIPickerView滚动条的每一行的内容)。
在您的情况下,要使用单个pickerView显示不同的数据,您将把if语句放在此方法中以操纵此方法发送回pickerView的内容。
您想要做的是使用某种机制来区分您要在pickerView中使用的13条信息中的哪一条,您将在上述方法中处理这些信息。