加载所有TabBar视图
我有一个tabbar控制器作为根视图控制器。 我想预加载选项卡的视图[1,2,3](选项卡0自动加载作为第一个选项卡)。
我基本上想要在用户点击选项卡之前运行viewdidload中的代码。
谢谢
如果你把你的视图的初始化代码,并将其移动到loadView而不是viewDidLoad,你可以强制每一个UITabBarController的UIViewController加载通过简单地调用viewController.view。 发生这种情况是因为一个UIViewController会在被询问时通过loadView函数创build视图对象。
for(UIViewController * viewController in tabBarController.viewControllers){ viewController.view; }
或者更简单
[tabBarController.viewControllers makeObjectsPerformSelector:@selector(view)];
在iOS 8中,我创build了名为TSMainBarViewController的UITabViewController的子类。 在TSMainBarViewController函数viewDidLoad
中,我只是添加了这个代码:
for(UINavigationController * viewController in self.viewControllers){ [[viewController.viewControllers firstObject] view]; }
然后加载所有viewController(UINavigationController的root viewController)。 我的所有viewController都是在StoryBoard中创build的。 不要在UIViewController中实现函数loadView
。
来自EligyD的Swift 3代码:
for viewController in self.viewControllers! { _ = viewController.view }
要处理可能或可能没有导航控制器的选项卡控制器:
viewControllers?.forEach { if let navController = $0 as? UINavigationController { navController.topViewController?.view } else { $0.view.description } }
如果你的视图之前有UINavigationController
for viewController in self.tabBarController!.viewControllers! { var aView = viewController.topViewController as UIViewController aView.view.description }
如果您在标签栏控制器下的所有视图控制器都有一个导航栏embedded其中:
Swift 3
for navViewController in self.viewControllers! { _ = navViewController.childViewControllers[0].view }
用户pandas的解决scheme不适合我。
相当于Swift
for viewController in self.tabBarController.viewControllers! { viewController.view; }
Swift 3:
在你的UITabBarController的viewDidLoad()
中
for viewController in self.viewControllers! { _ = viewController.view }
- TabBar在启动UIImagePickerController后消失
- 在Retina iPad上显示全屏幕CAEAGLLayer的问题
- YouTube-Player-iOS-Helper无法使用YTPlayerView类
- 如何将Dropbox共享链接(针对一个zip文件)下载到本地
- iPhone通过电话播放声音
- iOS谷歌login查看丢失的导航栏和底部栏
- 两个mac。 一个iPhone开发者许可证。 可能?
- 如何解决错误ITMS-90032:“无效的图像path – 没有find在关键'CFBundleIcons'下引用的path图像:'AppIcon60x60'”?
- 从Notification Center启动应用程序时出现奇怪的崩溃