I am new to swift. I am Working with TabBar controller. I have set the Tabbar controller and view controllers using a storyboard. But for some designing purpose, I need to add Tab bar items Programmatically. when I ran this code getting crashed stated 'Unexpectedly found nil' values for my outlets. Am I missing anything?
Thanks in Advance..
Here is my Code,
class TabbarController: UITabBarController,UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
tabBar.tintColor = UIColor.white
tabBarItem.title = ""
setTabBarItems()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController)
{
// print("hi", terminator: "")
}
func setTabBarItems(){
let v1 = MyOrderViewController()
v1.tabBarItem.image = UIImage(named: "footer_1")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v1.tabBarItem.selectedImage = UIImage(named: "footer_1")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v1.tabBarItem.title = "Orders"
v1.tabBarItem.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
let v2 = FavouritesViewController()
v2.tabBarItem.image = UIImage(named: "footer_2")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v2.tabBarItem.selectedImage = UIImage(named: "footer_2")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v2.tabBarItem.title = "Favorites"
v2.tabBarItem.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
let v3 = FavouritesViewController()
v3.tabBarItem.image = UIImage(named: "huggg")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
v3.tabBarItem.selectedImage = UIImage(named: "huggg")?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
v3.tabBarItem.title = ""
v3.tabBarItem.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
let v4 = MoreViewController()
v4.tabBarItem.image = UIImage(named: "footer_4")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v4.tabBarItem.selectedImage = UIImage(named: "footer_4")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v4.tabBarItem.title = "Account"
v4.tabBarItem.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
let v5 = MoreViewController()
v5.tabBarItem.image = UIImage(named: "footer_5")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v5.tabBarItem.selectedImage = UIImage(named: "footer_5")?.withRenderingMode(UIImage.RenderingMode.alwaysTemplate)
v5.tabBarItem.title = "More"
v5.tabBarItem.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
let controllers = [v1, v2, v3, v4, v5]
self.viewControllers = controllers
}
}