ios - 如何制作动态 uitabbar Controller ?(swift)

标签 ios swift tabs uitabbarcontroller

我制作了一个包含 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/

相关文章:

ios - 使用 Tumblr 发布照片

ios - 在iOS中下载之前如何显示预览图像?

c# - 无法在新的 Chrome 浏览器标签页中打开 pdf

android - 拖放操作栏选项卡(Android 4.0 ICS)?

android - 选择选项卡或滑动页面时如何加载 fragment

ios - 为什么不在 NSUserDefaults 中存储密码是显而易见的?

ios - 如何调整 UIView 的横向方向?

ios - 更新 UITableViewCell 内的 UILabel 框架

swift - 如何在flutter中访问Firebase实时数据库快照上的子属性?

ios - 查看 Apple 的 "Adventure Game"教程 "in"是什么意思?