Return numberOfRowsInComponent & titleForRow in UIPickerview 基于另一个 UIpickerview 的 didSelectRow

Return numberOfRowsInComponent & titleForRow in UIPickerview based on another UIpickerview's didSelectRow

大家好,

我尝试在主题行中解释我的查询。 据我了解和我在代码中看到的内容,所有 pickerviews 都在 ViewDidLoad() 中初始化,这意味着它们都有自己的数据集。 作为我的数据验证的一部分,这在这种情况下非常重要,我想根据之前的选择设置以下选择器视图。

我卡住的地方是用 'new' 数据填充以下 pickerview 的标题并重新加载视图。

理想情况下,我希望视图显示为之前的选择。

如果您知道如何从逻辑上做到这一点,请告诉我,我将不胜感激目前能得到的任何帮助!

我不太确定您的逻辑含义,但您只是使用 if 语句和开关来确定已选择的内容以及根据该选择显示的内容。然后你重新加载数据。

func pickerView(pickerView: UIPickerView,
            didSelectRow row: Int,
             inComponent component: Int)
{
    if component == 0
    {
        switch row{
        case 0:
           self.titlesForComponentOne = ["One","Two","Three","Four"]
        case 1:
           self.titlesForComponentOne = ["One","Two"]
        default:
           self.titlesForComponentOne = ["One","Three","Four"]
         }
     }else if component == 1
     {
         switch row{
         case 0:
            self.titlesForComponentTwo = ["Three", "Four"]
         case 1:
         ….
     self.picker.reloadAllComponents() // or just ones that need to be updated
}

func pickerView( pickerView: UIPickerView,
numberOfRowsInComponent component: Int) -> Int
{
    switch component{
    case 0:
       return self.titlesForComponentZero.count
    case 1:
       return self.titlesForComponentOne.count
    case 2:
       ….  
}