【问题标题】:Swift iOS solution for multiple/relational drop down pickers用于多个/关系下拉选择器的 Swift iOS 解决方案
【发布时间】:2015-06-01 13:34:59
【问题描述】:

我是 iOS 编程新手,我不确定如何在我的设计中实现多个/关系下拉选择器。

我的应用中有一个类似于面板菜单的搜索表单。如果您单击搜索图标,则面板会与搜索表单一起滑入。

但是为我的搜索表单实现多个/关系下拉选择器的最佳方式是什么?

选择器是相关的。首先您选择一个州,然后您必须选择一个城市。一旦你在 dropdown1 中选择了一个状态,那么 dropdown2 应该会根据你在 dropdown1 中选择的内容来填充。

那么在设计方面有什么好的解决方案吗?

我想随时显示这两个选择器。有点像日期选择器,总是显示年/月/日。

但如果有人对关系选择器有很好的资源示例,请分享。

提前致谢,

【问题讨论】:

  • 我建议您重新考虑选择选择器 :) 搜索栏和 tableViews 可以很好地协同工作,Apple 提供了 UISearchController。在 tableView 中滚动要快得多(而且不那么烦人),尤其是因为它提供了内置索引!
  • @PetahChristian 谢谢,我会将它用于州/城市。但是当涉及到类别/子类别时,用户通常希望滚动列表以查看可供选择的内容。所以我正在考虑链接两个表视图。第一个您选择了一个类别,然后您最终进入 tableview 2 并选择了一个子类别,一旦您这样做了,您最终会回到搜索表单中。但是你怎么称呼这种类型的关系表视图? - 所以我可以在 github 上搜索一些示例。我希望根据您在 tableview nr1 中选择的内容填充 tableview nr1。再次感谢:)

标签: ios iphone swift ipad


【解决方案1】:

您可以使用嵌套的 UITableViewControllers 进行设置。

这些类型的项目通常称为 Master/Detail。

Master tableView 将显示类别列表。

一旦用户选择了一个类别,特定的类别就会传递给细节视图控制器。它查询该类别的所有子类别。

这一切都可以在 Storyboard 中完成,使用自动布局、自动调整单元格大小以及显示和展开转场的组合。

  • show segue 将(表)视图控制器推送到导航控制器堆栈上。在您的情况下,类别控制器将推送一个子类别控制器。 prepareForSegue:sender: 是类别控制器将类别提供给子类别控制器的位置。
  • 一个展开转场从视图控制器返回,将其从导航堆栈中弹出。在您的情况下,子类别控制器将(连同选定的子类别信息)返回到类别控制器或之前的视图控制器。

这听起来似乎需要消化很多东西,但如果您阅读最近(即 iOS 8)使用这些概念的演练,您将学到一些可接受的实践,了解信息和控制应如何在应用程序中流动。

还有一件事我没有提到,叫做核心数据。 Core Data 和NSFetchedResultsController 将是学习和使用该应用程序的绝佳工具。它可能比我之前提到的任何东西都复杂,但是一旦你掌握了它,你就会非常喜欢它,并且最终可能会在许多应用程序中使用它!

不要太拘泥于应用的外观。专注于模型和视图控制器的编写方式,并对底层框架有很好的理解。现在,这比任何花哨的过渡/动画都更重要。

任何应用的设计都会随着您的使用而发展。您会发现什么效果好,什么效果不好,所以不要太执着于任何一种数据组织方式!

希望对您有所帮助!享受 iOS 编程吧,这是一个很棒的平台!

【讨论】:

  • 我非常感谢您的精彩回复!你提到了很多有趣的技巧。我会仔细研究核心数据 :) 我会在我的代表提高后尽快投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多