iOS导航添加项目的最佳实践

时间:2014-10-09 09:18:02

标签: ios uinavigationcontroller

我找不到答案,虽然我已经实施了几次,但可能是错误的方式。

假设我有一个适用于iOS的应用程序,它有一个主屏幕,它进入一个列表,该列表有一个<返回(到主)和添加按钮。现在当我点击<回来,我回到main,因为那是来自堆栈的pop()。到目前为止没有问题。

现在当我点击添加按钮时,它也被添加到堆栈中;当我点击那个屏幕时,我回到列表,这很好。

问题是;当我保存新项目时,我想进入详细信息屏幕,但我实际上并不想在堆栈中添加添加屏幕。我想要<指向列表的详细信息项的后退按钮。

我知道如何做到这一点,但实际上最好用导航堆栈实现这一点?

2 个答案:

答案 0 :(得分:1)

添加元素的最佳做法是提供ModalViewController。 这样它就不会被添加到堆栈中。

<强>更新

让我们以苹果为iOS提供的简单应用为例,通讯录应用。如果要添加新联系人,则会显示VC。 您需要实施&#34;完成&#34;或&#34;保存&#34;将解除modalViewController的按钮,如果你想将用户带入详细信息屏幕,你可以在dismissViewController方法的完成块上发布一个通知或其他机制,它将从列表中推送详细信息页面。但是要注意动画,如果你关闭模态VC动画并推动动画细节页面你可能会得到一些意想不到的行为。我的建议是解雇Modal VC动画并推送详细页面而不动画。

答案 1 :(得分:0)

推送详细视图控制器后,可以覆盖UINavigationController的viewControllers属性。只需获取当前的viewControllers属性数组,迭代并找到您不想查看和删除的数组。请记住再次设置viewControllers数组。

https://developer.apple.com/library/ios/documentation/Uikit/reference/UINavigationController_Class/index.html#//apple_ref/occ/instp/UINavigationController/viewControllers