我创建了一个包含3个标签的应用。我想让我的标签栏控制器根据登录的用户类型动态更改第一个标签栏的视图控制器。其余两个标签栏是静态的。例如,如果用户类型为1,我想为第一个选项卡显示 ViewController1 ,如果用户类型为2,我想显示 ViewController2 。在故事板中设计标签栏时,这是不可能实现的吗?我在应用程序中使用了故事板。
答案 0 :(得分:3)
您可以使用tabview控制器setviewcontrollers上的功能更改这些功能(请参阅此处的文档:https://developer.apple.com/documentation/uikit/uitabbarcontroller/1621177-setviewcontrollers)。
例如,我在tabviewcontroller中有一个带有4个Viewcontrollers的故事板,然后在第一个加载的viewController中,我在viewDidLoad()&#34中添加了以下内容;
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。
希望有所帮助