gpt4 book ai didi

ios - 在我切换选项卡之前,viewWillAppear 不会触发属于 UITabBarController 的 UIViewController

转载 作者:可可西里 更新时间:2023-11-01 05:03:40 24 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我有一个 UITabBarController,它的 viewControllers 列表看起来像 [vc1, vc2],这是类MyVC1MyVC2 分别是 UIViewController 的子类。 MyVC1 覆盖了 viewWillAppear,被覆盖的版本打印了一些东西,所以我知道它何时被调用。 (这是为了隔离我遇到的一个更大的问题,即 View 未出现。)

我的问题是,当应用程序首次启动并且 vc1 是选定的选项卡时,没有打印任何内容,这意味着它的 viewWillAppear 没有被调用。如果我切换选项卡然后返回到 vc1,则会打印一些内容,因此在我切换回来之前不会调用 vc1viewWillAppear从另一个选项卡到它。

有没有办法让 vc1 在应用程序启动后立即调用 viewWillAppear,而不需要切换标签页?老实说,我很惊讶这不是默认行为。

最佳答案

我刚刚在 Xcode 中制作了一个新的测试应用程序,在 Main.storyboard 中只有一个 UITabViewController(及其两个 subview Controller ),当我为第一个 child 覆盖 viewWillAppear 时,我的“ View 将出现”日志每次都会打印(包括在应用启动时)。

以下是一些可能导致 viewWillAppear 不被调用的事情:

  1. 不要在覆盖 viewWillAppear 的地方调用 super
  2. 在某处添加 View Controller 的 View 作为 subview 而不将 View Controller 添加为 subview Controller

您也可以尝试查看是否为您的 UITabBarController 调用了 viewWillAppear,如果没有,它是否被其父 View Controller 或呈现 View Controller 调用?依此类推,直到找到阻碍的地方。

关于ios - 在我切换选项卡之前,viewWillAppear 不会触发属于 UITabBarController 的 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421430/

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