【问题标题】:How to reload tab bar items after user changes role用户更改角色后如何重新加载标签栏项目
【发布时间】:2017-02-27 16:59:50
【问题描述】:

当点击一个按钮时,应用用户可以在两个角色之间切换,用户和管理员。

在我的tabBarViewControllerviewDidLoad 方法中,

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()

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

【问题讨论】:

    标签: ios swift uitabbarcontroller swift3 user-roles


    【解决方案1】:

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

    当点击按钮改变角色时

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-22
      • 2013-11-17
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多