2015-06-19 42 views
-1

现在我有一个选择器视图,当您按下标签时出现,当您从选取器视图中选择任何内容并点击完成后,它将隐藏并且标签将更改为您选择的值。Swift ios关系选取器视图和苹果开发指南

但我想要实现另一个选取器视图,并且该选取器视图将仅基于您在第一个选取器视图中选择的值显示。

所以或多或少都像在几乎每个网站上都可以找到的关系下拉菜单。

我希望能够选择类别和子类别。但它只有约10%的类别有一个子类别,这就是为什么我要这样构建它。

所以我现在的问题是,如果这将是对苹果开发/设计指南?

或者是否有其他人有一个很好的解决方案,如何在iOS应用程序中显示搜索表单的类别/子类别选择器?

在此先感谢,

回答

1

只是一个粗略的草图:

说你从你PickerView选择一个类别。然后,您的PickerView应该通知您父ViewController用户选择了一个类别。最方便的方式做到这一点是有一个Delegate方法,如:

self.delegate.userPickedCategory(pickedCategory: Category) 

现在,我想你Category对象包含子类别的数组:

class Category: NSObject { 

var title: NSString! 
var subCategories: NSMutableArray! 
//some variable containing categories content 
} 

说你命名的按钮,使子类别菜单subCategoryButton。您应该始终设置hidden = true或至少userInteractionEnabled = false,因为您不知道所选类别是否有子。

如果你的父母的ViewController收到您的用户选择了一个类别的委托方法,你可以这样做:

func userPickedCategory(pickedCategory: Category) { 
      if pickedCategory.subcategories != nil || pickedCategory.subCategories.count != 0 { 
      //you now know the picked category has a subCategory 
      //so allow the user to pick that subCategory by enabling this button 
      self.subCategoryButton.hidden = false 
      self.subCategoryButton.userInteractionEnabled = true 
    } 

然后,你需要确保subCategoryButton显示包含您挑选类别的子类别另一个选择器视图

+0

非常感谢,设法解决您的答案 –

1

请检查以下开放源代码实现您想要什么。

kxmenu

+0

看起来很有趣,但那个更像是一个下拉菜单,而不是一个选择器。我有大约50个值显示,所以我猜一个选择器效果更好。不管怎么说,还是要谢谢你! :) –