我制作了一个包含 3 个标签页的应用。我想让我的标签栏 Controller 根据登录的用户类型动态更改第一个标签栏的 View Controller 。其余两个标签栏是静态的。例如,如果用户类型是 1,我想为第一个选项卡显示 ViewController1,如果用户类型是 2,我想显示 ViewController2。在 Storyboard中设计标签栏时,这是不可能实现的吗?我在应用程序中使用 Storyboard。
最佳答案
您可以使用选项卡 View Controller setviewcontrollers 上的函数更改这些(请参阅此处的文档:https://developer.apple.com/documentation/uikit/uitabbarcontroller/1621177-setviewcontrollers)。
例如,我在一个 tabviewcontroller 中有一个包含 4 个 Viewcontroller 的 Storyboard,然后在加载的第一个 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”,这是在 Storyboard上设计的 VC,给定了一个标识符,但实际上并没有添加到 tabViewController。
希望对你有帮助
关于ios - 如何制作动态 uitabbar Controller ?(swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37918170/