title: How to get a custom tab bar to display a tab bar item's selected image set in Xcode?
body: <p>I've created a custom tab bar that is displaying tab bar items correctly. When I select a tab / icon the tab bar item's view controller is displayed but the icon does not change to the 'Selected image' icon i.e. the icons don't change when their view controller is being shown.</p>
  
  <p>What am I doing wrong? How can I get the icons to update to the images that I've set on IB as the selected images?</p>
  
  <p>Here is some of my code:</p>
  
  <pre><code>class CustomTabBarController: UITabBarController, CustomTabBarDataSource, CustomTabBarDelegate {
   override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBar.isHidden = true
    let customTabBar = CustomTabBar(frame: self.tabBar.frame)
    customTabBar.datasource = self
    customTabBar.delegate = self
    customTabBar.setup()
    self.view.addSubview(customTabBar)
   }
   // MARK: - CustomTabBarDataSource
   func tabBarItemsInCustomTabBar(_ tabBarView: CustomTabBar) -&gt; [UITabBarItem] {
    return tabBar.items!
   }
   // MARK: - CustomTabBarDelegate
   func didSelectViewController(_ tabBarView: CustomTabBar, atIndex index: Int) {
    self.selectedIndex = index
   }   
  }
  
  
  class CustomTabBar: UIView {
   var tabBarItems: [UITabBarItem]!
   var customTabBarItems: [CustomTabBarItem]!
   var tabBarButtons: [UIButton]!
  
  func setup() {
   tabBarItems = datasource.tabBarItemsInCustomTabBar(self)
   customTabBarItems = []
   tabBarButtons = []
   let containers = createTabBarItemContainers()
   createTabBarItems(containers)
  }
  
  func createTabBarItems(_ containers: [CGRect]) {
  
  var index = 0
   for item in tabBarItems {
    let container = containers[index]
    let customTabBarItem = CustomTabBarItem(frame: container)
    customTabBarItem.setup(item)
    self.addSubview(customTabBarItem)
    customTabBarItems.append(customTabBarItem)
    let button = UIButton(frame: CGRect(x: 0, y: 0, width: container.width, height: container.height))
    button.addTarget(self, action: #selector(CustomTabBar.barItemTapped(_:)), for: UIControlEvents.touchUpInside)
    customTabBarItem.addSubview(button)
    tabBarButtons.append(button)
    index += 1
   }
  }
  
  func barItemTapped(_ sender : UIButton) {
   let index = tabBarButtons.index(of: sender)!
   delegate.didSelectViewController(self, atIndex: index)
  }
  </code></pre>