代码之家  ›  专栏  ›  技术社区  ›  paulthenerd

iPhone ViewDidAspect在加载/取消模式视图后停止启动

  •  3
  • paulthenerd  · 技术社区  · 15 年前

    我开始有点疯狂了。

    我有一个有点复杂视图结构的iphone应用程序,它是一个选项卡式应用程序,每个选项卡上都有一个视图控制器或导航控制器。

    一个选项卡的主控制器使用ViewDidAspect回调来重新加载自上次显示以来已修改的任何数据,在大多数情况下,这种行为都很正常。我遇到的问题是,当我使用标准的导航控制器推/弹出机制在子视图(在同一选项卡内)中导航时,主视图上的视图将显示,并且当我导航回主视图时,始终会触发ViewDidDisplay。 但是,如果加载一个模态视图控制器,然后将其关闭,则ViewDisplay将继续启动,但ViewDidDisplay将停止启动。

    我几乎可以肯定,这与需要手动调用模态控制器上的这些回调有关,但我找不到有关如何正确执行此操作的参考信息。(我只在硬件上看到这个ViewDidEmerge bug,在模拟器中,它的工作方式与我预期的一样)

    如果您需要进一步的澄清,请让我知道,并感谢您的任何意见。

    2 回复  |  直到 15 年前
        1
  •  3
  •   corydoras    15 年前

    是的,这就是它的工作原理。您最好切换到使用ViewWillDisplay。

    这还有一个额外的优点,就是在重新绘制屏幕之前更新数据。

        2
  •  0
  •   Danilo Campos    15 年前

    • 设置标题
    • 实例化子视图、内容数组
    • 与所讨论视图的基础结构相关的任何其他内容

    视图从未卸载 . viewDidLoad在导航视图控制器堆栈时可以正常启动,因为新视图需要内存,需要卸载其他视图,然后在它们重新出现时重新加载。