如何解决SWIFT:如果我以编程方式实现UITAB栏,是否可以在storyBoard中编辑不同的tabItem
我已经以编程方式实现了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)
}
}
DownloadViewController.swift
class DownloadsViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.green
self.title = "Downloads"
}
}
我的问题是:
是否必须以编程方式实现不同viewControllers downloadViewController,favoritesViewControllers
的所有布局?
我不能使用情节提要板并关联viewController并在那里进行所有UI设计和实现,例如:
这里的问题是,如果我将以编程方式实现所有布局,那将不是显而易见的事情,也不是实际的事情。
并向该故事板ViewController分配DownloadsViewController时,当我导航到UITabBar中的DownloadsTab时,它不会显示出来。
解决方法
是的,您当前可以通过编程方式来创建视图控制器实例,而不必像这样从StoryBoard加载/获取viewController实例。
UIStoryboard(name: "Main",bundle: Bundle.main).instantiateViewController(identifier: "downloadsVC") as! DownloadsViewController
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。