【问题标题】:How to make dynamic uitabbar controllers?(swift)如何制作动态 uitabbar 控制器?(swift)
【发布时间】:2016-06-20 08:49:21
【问题描述】:

我制作了一个有 3 个标签的应用。我想让我的标签栏控制器根据登录的用户类型动态更改第一个标签栏的视图控制器。其余两个标签栏是静态的。例如,如果用户类型是 1,我想为第一个选项卡显示 ViewController1,如果用户类型是 2,我想显示 ViewController2。在情节提要中设计标签栏时,这是不可能实现的吗?我在应用程序中使用故事板。

【问题讨论】:

  • 通过代码配置tabbar或者在storyboard中创建两个独立的tabbar控制器,使用它们的restore id或者storyboard id来呈现特定的导航。
  • 我编辑了我的问题,因此,如果可能的话,我不想复制我的两个静态选项卡。我想知道这是否可以使用情节提要,通过代码执行将是我最糟糕的情况。谢谢。
  • 在情节提要的每个选项卡中指定 VC 时,只需 NO,那么您希望以后如何更改它而不做任何事情?
  • 好的,那么我会问是否可以在情节提要中设计我的两个视图控制器,并最初将其中一个设置为第一个选项卡栏,并在必要时使用情节提要动态将其更改为第二个 VC身份证等?

标签: ios swift tabs uitabbarcontroller


【解决方案1】:

您可以使用 tabview 控制器 setviewcontrollers 上的函数来更改这些(请参阅此处的文档:https://developer.apple.com/documentation/uikit/uitabbarcontroller/1621177-setviewcontrollers)。

例如,我在 tabviewcontroller 中有一个带有 4 个 Viewcontroller 的故事板,然后在加载的第一个 viewController 中,我在 viewDidLoad() 中添加了以下内容

let storyboard = UIStoryboard(name: "myStoryboard", bundle: nil)
let newTab = storyboard.instantiateViewController(withIdentifier: "testControllerID") as! TestViewController
let myControllers = [newTab, tabButton2, tabButton3, self, tabButton4]
tabBarController?.setViewControllers(myControllers, animated: true)

所以我能够重新排列我之前定义的选项卡,并添加“newTab”,这是在情节提要上设计的 VC,给定了一个标识符,但实际上并未添加到 tabViewController。

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多