如何在用户更改角色后重新加载标签栏项目

时间:2016-10-18 12:10:57

标签: ios swift uitabbarcontroller swift3 user-roles

点击按钮时,app用户可以在两个角色(用户和经理)之间切换。

在我的tabBarViewController viewDidLoad方法

if userRole == "manager" {

            let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let managerHomeViewController = (mainStoryboard.instantiateViewController(withIdentifier: "ManagerHome")) as! UINavigationController
            let managerProfileViewController = (mainStoryboard.instantiateViewController(withIdentifier: "ManagerProfile")) as! UINavigationController
            self.viewControllers?.replaceSubrange(0...1, with: [managerHomeViewController,managerProfileViewController])
        }

在加载视图时更改前两个标签栏项目。

anotherViewController中,用户点按按钮即可更改角色,

MainTabBarViewController().aboveFunction()

运行此行后,标签栏项目不会更新。通过强制关闭应用并重新启动它只能更新为新的标签栏项目。更新后如何立即重新加载标签栏项目?

1 个答案:

答案 0 :(得分:0)

我没有找到重新加载的解决方案,但我最终在故事板中使用两个标签栏控制器来为用户和经理提供两个视图。

点按按钮更改角色

let homeViewController = (self.storyboard!.instantiateViewController(withIdentifier: "ManagerHomeTabBar")) as UIViewController
self.present(homeViewController, animated: false, completion: nil)

切换到正确的标签栏视图。