Ios 在切换选项卡之前,属于UIAbbarController的UIViewController的视图将显示为不启动

Ios 在切换选项卡之前,属于UIAbbarController的UIViewController的视图将显示为不启动,ios,uiviewcontroller,uitabbarcontroller,Ios,Uiviewcontroller,Uitabbarcontroller,在我的iOS应用程序中,我有一个uitabarcontroller,它的viewControllers列表看起来像[vc1,vc2],分别属于MyVC1和MyVC2类,这两个子类都是UIViewControllerMyVC1覆盖视图将出现,被覆盖的版本将打印一些内容,以便我知道何时调用它。(这是为了隔离我遇到的一个更大的问题,即没有出现视图。) 我的问题是,当应用程序第一次启动并且选择了vc1选项卡时,不会打印任何内容,这意味着不会调用其视图。如果我切换选项卡,然后返回到vc1,某些内容确实会被

在我的iOS应用程序中,我有一个
uitabarcontroller
,它的
viewControllers
列表看起来像
[vc1,vc2]
,分别属于
MyVC1
MyVC2
类,这两个子类都是
UIViewController
<代码>MyVC1覆盖
视图将出现
,被覆盖的版本将打印一些内容,以便我知道何时调用它。(这是为了隔离我遇到的一个更大的问题,即没有出现视图。)

我的问题是,当应用程序第一次启动并且选择了
vc1
选项卡时,不会打印任何内容,这意味着不会调用其
视图。如果我切换选项卡,然后返回到
vc1
,某些内容确实会被打印出来,因此
vc1
视图将出现
,直到我从另一个选项卡切换回它为止


有没有办法让
vc1
call
view在应用程序启动后立即显示,而无需切换选项卡?老实说,我很惊讶这还不是默认行为。

在vc1的ViewWillAspect方法中使用以下行:

  [super viewWillAppear:animated];

接下来,UITabBarController必须是您的初始控制器。

我刚刚在Xcode中制作了一个新的测试应用程序,在Main.storyboard中只有一个UITabViewController(及其两个子视图控制器),当我覆盖第一个子视图时,每次都会显示我的“视图”日志打印(包括在应用程序启动时)

以下是一些可能导致ViewWill无法调用的情况:

  • 不在您已覆盖的位置调用super将出现
  • 将视图控制器的视图添加为子视图,而不将视图控制器添加为子视图控制器

  • 您还可以尝试查看ViewWillExample是否为您的UITabBarController调用,如果不是,是否为其父视图控制器或显示视图控制器调用?依此类推,直到找到阻塞的位置。

    让舒尔在UITabBarController中的视图中显示super。视图将显示(动画),如以下代码所示

    override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
    
        }
    

    如果您有自定义UITabBarController,请选中override func VIEWWILLISEAM is call super

    在自定义UITabBarController中

    override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated) // this line need
        }
    

    对不起,那没用。直到我从另一个选项卡切换到
    vc1
    ,它才被调用。你能发布你故事板的截图吗?谢谢你的帮助。我的
    uitabarcontroller
    中缺少了对super的调用。如果uitabarcontroller不是我的初始控制器,我该怎么办?谢谢,我没有调用
    super,就覆盖了
    uitabarcontroller
    视图将出现。愚蠢的错误……哦,。。。我看到你的评论。