ios - 如何在 Swift 中将表格视图控制器添加到选项卡栏控制器
问题描述
我正在使用情节提要来创建所有 ui 布局。
我有一个表格视图控制器,我使用下面的代码在加载应用程序时删除了它,因为对于普通用户,需要隐藏一个标签栏项目。
self.tabBarController?.viewControllers?.remove(at: 4)
但是当管理员登录时(我通过比较电子邮件身份验证)应该添加上面删除的表视图控制器,所以当我使用下面的代码添加时
self.tabBarController?.viewControllers?.insert(AdminProductUploaderTableVC(), at: 4)
只是添加空白区域。
AdminProductUploaderTableVC
在故事板上有导航控制器。
那么如何为管理员加载现有的表视图控制器呢?
谢谢
解决方案
你在做什么错?
self.tabBarController?.viewControllers?.insert(AdminProductUploaderTableVC(), at: 4)
正在创建这样的对象, AdminProductUploaderTableVC()
而不是从情节提要加载。
首先转到情节提要并将情节提要标识符添加到AdminProductUploaderTableVC
转到 AdminProductUploaderTableVC
并添加以下方法
class func viewController() -> AdminProductUploaderTableVC {
return UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "AdminProductUploaderTableVC") as! AdminProductUploaderTableVC
}
现在将您的行替换为
self.tabBarController?.viewControllers?.insert(UINavigationController(rootViewController:AdminProductUploaderTableVC.viewController()), at: 4)
希望对您有所帮助
推荐阅读
- javascript - 将秒输出更改为分钟和小时
- mysql - 如果它们在sql中共享相同的id值,如何将值组合在一起
- django - Django 从 MultipleChoiceField 获取已清理的数据
- c# - 远程桌面 Active X 控件未连接
- dart - 如何在 Dart 中获取顶级函数的元数据
- mailgun - Linode 域管理器中的 MailGun TXT 记录
- php - Codeiniter Rest Server - 无法获取通过发布请求发送的数据
- mapreduce - 如何正确组织 RavenDB Map/Reduce 结果?
- java - 如何使用相对路径将文件写入目录
- python - 如何在 Python 中同步套接字消息