Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 推送与模态分段的用例?_Ios_Iphone_Uitableview_Uiviewcontroller_Segue - Fatal编程技术网

Ios 推送与模态分段的用例?

Ios 推送与模态分段的用例?,ios,iphone,uitableview,uiviewcontroller,segue,Ios,Iphone,Uitableview,Uiviewcontroller,Segue,比如说,我有一个场景(带有导航栏的推式视图控制器),它在表视图中显示一些表格数据。 在该场景的导航栏中,我有一个+符号,它应该会打开一个新场景,用户可以在其中添加一个新项目(核心数据表的行)。 在表格视图中,每一行在每个单元格的右侧都有一个箭头,这将打开一个场景,用户可以在其中编辑特定项目的详细信息。 我应该为+使用推送或模式序列吗? 我应该为箭头使用推送或模式序列吗? 什么是“最佳实践”? 我理解推式和模态segue之间的区别,但我想知道哪个更适合上面的用例 如果你想遵循苹果的最佳实践,我建议

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

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

  • 对于“添加”功能,请使用模态序列。
    例如,看看contacts应用程序。按+键显示模式视图控制器。
    逻辑是什么?对于启动,模态视图控制器通常有一个“取消”按钮,而不是按下vc上的“后退”按钮。
    当用户按下“back”(返回)按钮时,他希望找到返回vc的方法。通常“返回”将数据保存在iOS上(自动保存)。
    因此,通过使用模式segue,您可以强制用户提交表单,或者取消表单。模态演示提示您确实需要填充此屏幕

  • 用于编辑-推送。但是modal也可以工作(并且您可以重用相同的VC)。
    推送原因:

    • 你得到了一个vc的层次结构,在向下钻取的过程中来回移动
    • (您应该实现)返回时自动保存(就像其他iOS应用程序一样)

  • 要将新实体添加到核心数据表中,点击+按钮(我假设它是导航栏上的右栏按钮项)时,使用模式segue。 为enity添加新行的视图必须以模式显示,保存完成后,关闭模式视图并重新加载表格视图以显示新添加的项


    此外,为了显示实体行的详细信息,请使用推送序列。用户在选择表格单元格时需要一个推送操作,这是实现这一点的理想方法。

    我希望此快速摘要将帮助您: 当您想要显示摘要视图的详细视图时,请使用导航控制器并按顺序。如果“父”视图与“子”视图的数据没有真正的关联,那么使用模态视图。模态视图的一个很好的例子是任何入口视图。就数据与“父”视图而言,此视图实际上没有任何关系。输入屏幕将只从用户获取数据,并将保存、可以离开并将控制权交还给父视图