使用情况下推与模态赛格?

比方说,我有一个场景(推动视图控制器与导航栏),其中显示表格视图中的一些表格数据。 在该场景的导航栏中,我有一个+符号,它应该打开一个新的场景,用户可以在其中添加一个新项目(行到核心数据表)。 在表格视图中,每行在每个单元格的右侧都有一个箭头,打开一个场景,用户可以编辑该特定项目的详细信息。 我应该使用push还是modal? 我应该使用推或模态的箭头? 什么是“最佳实践”? 我理解push和modal的区别,但是我想知道哪个更适合上述用例。

如果你想遵循苹果的最佳实践,我会build议如下:

  1. 对于“添加”function,使用模态 segue。
    例如看看联系人应用程序。 按+显示一个模态视图控制器。
    什么是逻辑? 开始,模式视图控制器通常有一个“取消”button,而不是一个推动VC上的“后退”button。
    当用户按下“返回” – 他会想办法回到vc。 通常“返回”将您的数据保存在iOS(自动保存)上。
    所以通过使用模态segue,您可以强制用户提交表单或取消。 模式演示提示您确实需要填写此屏幕。

  2. 进行编辑 – 推送。 但模式也可以工作(你可以重复使用相同的VC)。
    推动原因:

    • 你得到一个vc的层次结构,在下钻的同时前进和后退。
    • (你应该实现)回去时自动保存(就像其他的iOS应用程序一样)

我希望这个快速总结能够帮助你:当你想显示一个摘要视图的详细视图时,使用导航控制器和Push Segues。 如果“父”视图与数据不涉及“子视图”,那么使用模式。 模态视图的一个很好的例子是任何入口视图。 这个视图与数据关于“父”视图并没有任何关系,input屏幕只会从用户处获得数据dat并且将会保存并可以离开并将控制权交还给父

为了添加一个新的实体到核心数据表中,点击+button(我假设它是一个右边的酒吧button的项目在导航栏上),使用模态segue。 用于添加新行的视图必须以模态forms呈现,一旦保存完成,closures模式视图并重新加载表视图以显示新添加的项目。

也用于显示实体行的详细信息,请使用push segue。 当用户select一个表格单元时,用户期望一个推动动作,这是实现这一点的理想方式。