现在我有一个选择器视图,当您按下标签时显示,并且在您从选择器视图中选择任何内容并点击完成后,它将隐藏,标签将更改为您选择的值。
但我想实现另一个选择器视图,该选择器视图将仅根据您在第一个选择器视图中选择的值显示。
或多或少像几乎每个网站上都可以找到的关系下拉列表。
我希望能够选择类别和子类别。但它只有大约10%的类别有一个子类别,这就是为什么我想用这种方式构建它。
所以我现在的问题是,这是否会违反苹果开发/设计指南?
或者其他人是否有很好的解决方案如何在iOS应用中显示搜索表单的类别/子类别选择器?
提前致谢,
答案 0 :(得分:1)
检查以下开源实现的内容。
答案 1 :(得分: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
显示另一个包含所选类别的子类别的选择器视图