gpt4 book ai didi

ios - Viewcontroller 堆栈理解问题

转载 作者:行者123 更新时间:2023-11-28 12:57:08 25 4
gpt4 key购买 nike

我在理解 viewcontroller 堆栈时遇到了一些严重的问题。我的应用程序何时会使用堆栈来保存以前的 View Controller ?仅当我使用导航 View Controller 或任何时候我使用普通 View Controller 并在它们之间模态转换时?

所以我只是想知道我是否使用某种链式例程,例如从 vc 1 到 vc 2 以及从 vc 2 回到 vc 1。没有导航 Controller ,只有模态转场,没有展开。我的应用程序是否因为堆栈(每次我四处走动时都会增长)而出现性能问题,还是没有任何区别?

----更新了

所以基本上这是我的问题。如果我完成应用程序的例程,每次我进行转换时 View 都会堆叠起来。

enter image description here

最佳答案

UINavigationController 将保留您插入其导航堆栈的任何 Controller ,直到您将其弹回。

任何 UIViewController 都会保留它以模态方式呈现的 Controller ,直到该子 Controller 被关闭。

在任何一种情况下,每个 Controller 都至少会消耗一些内存,直到您将其删除。构建不断扩展的 Controller 堆栈的应用可能会遇到许多问题,包括:

  1. 你最终会耗尽内存,速度有多快取决于每个 Controller 使用多少内存。
  2. 如果后台的许多 Controller 对同一个事件使用react,您可能会看到意想不到的副作用。
  3. 如果用户在 Controller “A”的实例中更改状态,将 Controller “B”的实例推到它上面,然后“返回”到添加到顶部的第二个“A”实例,则用户可能会感到困惑状态。由于他们正在查看新 Controller 并查看他们在先前实例中设置的任何选择、滚动位置、用户输入或其他状态,因此可能会丢失。
  4. 包括您在内的开发者可能会害怕接触此应用。

我怀疑如果您查看 Controller 管理与您呈现给用户的任何视觉隐喻相匹配,每个人都会有更好的体验。

关于ios - Viewcontroller 堆栈理解问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34756083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com