Swift ios关系选择器视图和apple dev指南

时间:2015-06-19 20:12:59

标签: ios xcode swift uitableview search

现在我有一个选择器视图,当您按下标签时显示,并且在您从选择器视图中选择任何内容并点击完成后,它将隐藏,标签将更改为您选择的值。

但我想实现另一个选择器视图,该选择器视图将仅根据您在第一个选择器视图中选择的值显示。

或多或少像几乎每个网站上都可以找到的关系下拉列表。

我希望能够选择类别和子类别。但它只有大约10%的类别有一个子类别,这就是为什么我想用这种方式构建它。

所以我现在的问题是,这是否会违反苹果开发/设计指南?

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

提前致谢,

2 个答案:

答案 0 :(得分:1)

检查以下开源实现的内容。

kxmenu

答案 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显示另一个包含所选类别的子类别的选择器视图