Sam*_*Sam 11 load launch uitabbarcontroller ios swift
我没有在与此问题相关的帖子中找到相关和最新的答案.
我想在启动时加载所有viewcontrollers.目前它按预期启动,但是当我点击一个条形项目(第一次)时,加载它有一点延迟,因为它尚未加载.
我怎么能这样做是Swift?
谢谢.
Rob*_*ert 18
预加载 UIViewController视图,只需访问其view属性:
let _ = myViewController.view
Run Code Online (Sandbox Code Playgroud)
预加载a上的所有视图控制器 UITabBarController,您可以执行以下操作:
if let viewControllers = tabBarController.viewControllers {
for viewController in viewControllers {
let _ = viewController.view
}
}
Run Code Online (Sandbox Code Playgroud)
或者更紧凑:
tabBarController.viewControllers?.forEach { let _ = $0.view }
Run Code Online (Sandbox Code Playgroud)
小智 6
罗伯特上面的回答对我有用,但我有 UINavigationControllers 作为每个选项卡的初始视图控制器。因此我不得不打电话
viewControllers.forEach { $0.view }
Run Code Online (Sandbox Code Playgroud)
在我的 UINavigationControllers 中,以便加载它们的根视图控制器。希望能帮助山姆。
结合Robert's和M. Daigle的解决方案,我想到了这样的东西:
for viewController in tabBarController?.viewControllers ?? [] {
if let navigationVC = viewController as? UINavigationController, let rootVC = navigationVC.viewControllers.first {
let _ = rootVC.view
} else {
let _ = viewController.view
}
}
Run Code Online (Sandbox Code Playgroud)
将此添加到您的第一个ViewController的ViewDidLoad中,并可以完成操作...