0

I am new in iOS and my requirement is to implement Tab bar. I have 5 tab bar items and for each item there is different Screen(UIViewController). I have a HomeViewController and remaining 4 ViewControllers. I have to show all UIViewControllers using tabBar item. And I have to show tab bar in bottom for all UIViewControllers.

In Image You can see.

In Image, I am in HomeViewController and for each tab I have to go for respective ViewControllers but tab bar should be present for all ViewControllers. StoryBoard :- enter image description here I read tutorials but still confused. How can I do it?

Thanks

Kishor Pahalwani
  • 1,010
  • 1
  • 23
  • 53

1 Answers1

0

You can create the class of tab view controller like this

class TabBarViewController: UITabBarController {

    required init(coder aDecoder: NSCoder) {

    super.init(coder: aDecoder)!

override func viewDidLoad() {
    super.viewDidLoad()

    UITabBar.appearance().tintColor = UIColor(red: 254/255.0, green: 105/255.0, blue: 51/255.0, alpha: 100.0)

    for i in 0 ..< self.tabBar.items!.count {

        switch i {

        case 0:

            tabBar.items?[0].title = "Home"
            let firstTab = self.tabBar.items![i] as UITabBarItem
            learnTab.image = UIImage(named: "Homedeselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            firstTab.selectedImage = UIImage(named: "Homedeselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            firstTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            firstTab.titlePositionAdjustment = UIOffsetMake(0, -4)


        case 1:

            tabBar.items?[1].title = "Request"
            let secondTab = self.tabBar.items![i] as UITabBarItem
            secondTab.image = UIImage(named: "RequestDeselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            secondTab.selectedImage = UIImage(named: "Requestselected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            secondTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            secondTab.titlePositionAdjustment = UIOffsetMake(0, -4)

        case 2:

            tabBar.items?[2].title = "Renew"
            let thirdTab = self.tabBar.items![i] as UITabBarItem
             thirdTab.image = UIImage(named: "RenewDeSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            thirdTab.selectedImage = UIImage(named: "RenewSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            thirdTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            thirdTab.titlePositionAdjustment = UIOffsetMake(0, -4)

        case 3:

            tabBar.items?[3].title = "ReSell"
            let forthTab = self.tabBar.items![i] as UITabBarItem
            forthTab.image = UIImage(named: "ReSellDeSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            forthTab.selectedImage = UIImage(named: "ReSellSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            forthTab.imageInsets = UIEdgeInsetsMake(-1, 0, 1, 0)
            forthTab.titlePositionAdjustment = UIOffsetMake(0, -4)

        case 4:

            tabBar.items?[4].title = "ReCycle"
            let fifthTab = self.tabBar.items![i] as UITabBarItem
            fifthTab.image = UIImage(named: "ReCycleDeSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            fifthTab.selectedImage = UIImage(named: "ReCycleSelected")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
            fifthTab.imageInsets = UIEdgeInsetsMake(-2, 0, 2, 0)
            fifthTab.titlePositionAdjustment = UIOffsetMake(0, -5)

        default:
            break
        }
    }
}

override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {

    let rootView = self.viewControllers![self.selectedIndex] as! UINavigationController
    rootView.popToRootViewControllerAnimated(ture)


    }

}

}

Ram
  • 961
  • 6
  • 14