如何在 swift ios 中刷新标签栏项目 [英] How to refresh Tab Bar Items in swift ios

查看:69
本文介绍了如何在 swift ios 中刷新标签栏项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用标签栏项目做像 Instagram 这样的应用程序.在应用程序中,我有 simple usercompany 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:

  1. 匿名用户标签栏控制器.设置 5 个标签栏项目.
  2. 简单的用户标签栏控制器.设置 5 个标签栏项目.
  3. 公司标签栏控制器.设置 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆