我的viewDidAppear没有在视图控制器中调用

Ale*_*dro 5 uitabbarcontroller ios swift

事实证明,我想要做的是,当我来自3d快捷方式,强制UITabBarController选择索引时,如果我在标签栏中执行此操作,viewDidAppear()问题是viewDidAppear()我的主要UIViewController嵌入器未被调用,如果我单击再次在标签栏项目上然后已经调用它.由于其余的驱动程序没有发生,我理解为什么它不是第一个在项目列表中的那个UITabBarController.

标签栏控制器:(来吧)

override func viewDidAppear(_ animated: Bool) {
    if goTasks {
        self.selectedIndex = 0
    } else if goTodo {
        self.selectedIndex = 2
    } else if goProjects {
        self.selectedIndex = 3
    } else if goSearch {
        self.selectedIndex = 0
    }

}
Run Code Online (Sandbox Code Playgroud)

我的第一个UIViewController:(不称为此方法)

override func viewDidAppear(_ animated: Bool) {
    print("Entry")
}
Run Code Online (Sandbox Code Playgroud)

问题override的方法是什么?有解决方案吗

Sur*_*eet 7

在你的UITabBarController类viewDidAppear func中,调用它的超类,就像这样

 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if goTasks {
            self.selectedIndex = 0
        } else if goTodo {
            self.selectedIndex = 2
        } else if goProjects {
            self.selectedIndex = 3
        } else if goSearch {
            self.selectedIndex = 0
        }

    }
Run Code Online (Sandbox Code Playgroud)

之后,您的第一个viewcontroller将调用此方法.

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    print("Entry")
}
Run Code Online (Sandbox Code Playgroud)