ios - SWIFT:如果我以编程方式实现 UITAB 栏,是否可以在 storyBoard 中编辑不同的 tabItems
问题描述
我以编程方式实现了一个 tabBar:
class ViewController: UIViewController {
let tabBarCnt = UITabBarController()
override func viewDidLoad() {
super.viewDidLoad()
tabBarCnt.tabBar.tintColor = UIColor.black
createTabBarController()
}
func createTabBarController() {
let firstVc = UIViewController()
let downloadViewController = DownloadsViewController()
downloadViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .downloads, tag: 0)
let bookmarkViewController = BookmarksViewController()
bookmarkViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .bookmarks, tag: 1)
let favoritesViewControllers = FavoritesViewController()
favoritesViewControllers.tabBarItem = UITabBarItem(tabBarSystemItem: .favorites, tag: 2)
// Adding navigationControllers
let controllerArray = [downloadViewController, bookmarkViewController, favoritesViewControllers]
// For somereason this made the word Home appear in first tab
tabBarCnt.viewControllers = controllerArray.map{ UINavigationController.init(rootViewController: $0)}
self.view.addSubview(tabBarCnt.view)
}
}
下载ViewController.swift
class DownloadsViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.green
self.title = "Downloads"
}
}
我的问题是:
我是否必须以编程方式实现不同视图控制器的所有布局downloadViewController, bookmarkViewController, favoritesViewControllers
?
我不能使用情节提要并关联一个 viewController 并在那里进行所有 UI 设计和实现,如下所示:
这里的问题是,如果我以编程方式实现所有布局,这将不是一件显而易见或实际的事情。
并将DownloadsViewController 分配给该故事板ViewController,当我导航到UITabBar 中的DownloadsTab 时,它不会显示它。
解决方案
推荐阅读
- java - 为什么Java(JAMA/math3)和Matlab/Python计算的特征值不一样?
- android - 无法从 WhatsApp 通知中获取图像
- java - Wildfly - 无法获得大于 256 的最大连接数
- amazon-web-services - 后端服务器的可信 SSL 证书
- lua - 如何给存储在字符串值中的用户名的玩家钱 - Roblox lua
- web-services - Postman中的授权
- javascript - 二.js makeLine()函数报错:this.scene is undefined
- javascript - 如何在firebase中的两个整数值之间进行过滤?
- c# - 客户可以在生产后更改 env.IsDevelopment
- excel - VBA宏代码重复和复制而不是编辑每个副本