如何在 swift ios 中刷新标签栏项目 [英] How to refresh Tab Bar Items in swift ios
问题描述
我用标签栏项目做像 Instagram
这样的应用程序.在应用程序中,我有 simple user
和 company user
.
I do app like Instagram
with tab bar items. In app I have simple user
and company user
.
我有主视图控制器:
MainTabBarController: UITabBarController
有 5 个标签栏项目.每个项目都有自己的 ViewController
with 5 tab bar items. And each item has own ViewController
我需要刷新 MainTabBarController
当用户是 Simple user
时它是 5 项,当用户是 Company user
时它是 4 项.如何在不关闭应用的情况下刷新或重新加载?
I need refresh MainTabBarController
when user is Simple user
it is 5 items and when user is Company user
it is 4 items. How to refresh or reload without close app?
我已经用 UserDefaults 做了一个解决方案,但需要关闭应用程序.
One solution I already do with UserDefaults, but need close app.
平台 iOS > 9.0,Swift 3.0
推荐答案
我得到了解决方案:我将 MainTabBarController 分为 3 个类:
I got solution: I divided my MainTabBarController to 3 classes:
- 匿名用户标签栏控制器.设置 5 个标签栏项目.
- 简单的用户标签栏控制器.设置 5 个标签栏项目.
- 公司标签栏控制器.设置 4 个标签栏项目.
并使用动画更改用户界面:
And change user UI with animation:
func selectCompanyUser() {
guard let window = UIApplication.shared.keyWindow else {
return
}
guard let rootViewController = window.rootViewController else {
return
}
let viewController = CompanyTabBarController()
viewController.view.frame = rootViewController.view.frame
viewController.view.layoutIfNeeded()
UIView.transition(with: window, duration: 0.6, options: .transitionFlipFromLeft, animations: {
window.rootViewController = viewController
}, completion: nil)
}
这篇关于如何在 swift ios 中刷新标签栏项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!