【问题标题】:Designing a Hierarchical Application with Edit/Add Functionality设计具有编辑/添加功能的分层应用程序
【发布时间】:2012-01-08 22:52:56
【问题描述】:

以存储食谱和配料的简单应用为例。应用程序应允许添加、删除和编辑(只需重命名)配方。对于每个配方,可以添加、删除和编辑成分(名称和其他一些基本细节)。每种成分还有一些其他无法显示的细节。

这显然看起来是分层的,所以我从 UINavigationController 开始。我首先显示一个食谱列表,它允许深入了解成分,并深入了解成分的详细信息。

但似乎没有一种简单的方法可以提供此功能以及添加/编辑/删除功能。进入顶级食谱屏幕。我有一个“位置”来放置一个按钮(导航项的右侧位于屏幕顶部 - 左侧将用于“返回”按钮)。如果我将此设置为“添加”按钮,那么用户如何重命名现有配方?如果它是一个“编辑”按钮,那么我可以显示删除图标,并且可能选择一个配方显示一个屏幕来更改名称(而不是深入到成分),但现在我无法添加新配方.

我考虑过使用底部工具栏,但是

a) 一个简单的按钮会占用大量空间

b) 如果工具栏被添加到导航控制器中的视图中,那么它会被添加到导航层次结构中的所有视图中。这意味着该工具栏中的操作不会改变(例如 Apple 的电子邮件应用程序,其中工具栏始终包含“撰写”按钮,无论您在导航层次结构中的哪个位置)。它似乎处于“更高级别”,并且与当前视图无关。

这里有一个标准模式可以观察吗?以及任何设计良好的应用程序示例,其中包括数据的分层显示,能够在所有级别添加/编辑/删除?

【问题讨论】:

    标签: iphone cocoa-touch design-patterns user-interface uinavigationcontroller


    【解决方案1】:

    您可以复制通讯录应用的设计。

    根导航视图有一个用于添加新配方的右栏按钮。您有一个表格视图,列出了下面之前添加的食谱。点击一个单元格可以为您提供有关食谱的详细信息。在详细导航视图上,您​​有一个编辑按钮作为右栏按钮。当您使用编辑时,您可以选择删除配方和更改成分。这会打开一个新的导航视图,其中包含一个新的项目右栏按钮和表格视图中的成分项目列表。

    同样,您可以根据需要获得尽可能多的关卡。

    层次结构示例:

    1. 在右侧工具栏项目和配方项目单元格中带有添加按钮的配方视图。点按配方单元会推送详细视图 2。
    2. 带有编辑模式的编辑按钮的配方详细视图。在编辑模式下,您有一个删除配方按钮和一个推动视图 3 的成分按钮。
    3. 带有添加按钮和成分项单元格的成分视图。点击单元格推送视图 4。
    4. 带有编辑按钮的成分详细信息视图。等等。

    这将是我的一般想法,但您可以根据您的具体情况对其进行修改。希望编辑能澄清一点。

    【讨论】:

    • 很抱歉,我已经尝试阅读了几次,但没有按照您的流程进行操作。联系人应用程序只有一个列表,没有层次结构。当我选择一个联系人时,我会看到详细信息,并带有一个编辑按钮。但是当我点击一个食谱时,我会被带到一个*list的成分,然后可以选择它来进一步深入。
    • 从技术上讲,联系人应用程序的级别高于(组),但该视图上没有添加/编辑功能。
    【解决方案2】:

    查看 Apples 示例代码,Core Recipes 应用。它正是您所描述的。它使用 CoreData,是了解它的好方法。

    http://developer.apple.com/library/ios/#samplecode/iPhoneCoreDataRecipes/Introduction/Intro.html

    更改为 iPhone 版本的链接

    【讨论】:

    • 谢谢。我下载并尝试了这个例子。从用户体验 POV 来看,我觉得这很尴尬。简单地向现有配方添加成分所涉及的步骤和屏幕数量远非理想,他们使用“添加成分”行的实现也是如此,我认为这并不明显。 Apple 示例使用这种设计的事实让我认为这只是框架的限制,尽管它也可能是基于用户关注点的细微差异的设计选择。我可以进一步详细说明我认为它的缺点,但它可能跑题了。
    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2010-11-24
    相关资源
    最近更新 更多