【发布时间】:2019-05-04 13:18:12
【问题描述】:
在 iOS 应用程序中,要在屏幕之间移动,我可以呈现一个新的 ViewController(“向前移动”)或关闭当前的 ViewController(“向后移动”)。
在我的幼稚理解中,这只是一种在应用程序保存的 ViewController 堆栈中来回移动的方式。
我有一个直观的偏好,即关闭一个 ViewController(如果可能)而不是呈现一个新的 ViewController。它让我感觉在有限的 ViewControllers 集合中操作,这反过来又让我觉得应用程序是内存高效的。
假设我在视图 A 上并想显示视图 B,然后呈现 A 将导致堆栈 A-B-A,而解除 B 将使堆栈保持在 A。
我的问题是:这合理吗?通过呈现新的 ViewController 来永久工作是否有任何(程序化的)缺点?是内存效率低吗?
我想知道应用程序保存了多少以前的视图以及堆栈可以获得多长时间,以及这是否是尽可能关闭的理由。
【问题讨论】:
-
如果您想在 A 之后显示相同的 A - B,为什么还要显示另一个 A?除非第二个(A)与第一个不同。在这种情况下,您应该展示一个新的。这与内存效率无关,更多的是对用户有意义的视图层次结构。如果你正在前进,你应该展示/推动。如果您向后移动,则应该关闭/弹出。它与视图控制器是否相同无关。
-
你应该需要深入了解UINavigationController。
标签: ios swift view viewcontroller