Latest 0.1.2
License MIT
Platforms ios 8.0

CI Status

iPad screenshot

iPhone screenshot

  • Supports iPad and iPhone
  • Supports landscape and portrait orientations
  • Can be used inside UINavigationController
  • Customizable badges

Example Usage

Initialize RDVTabBarController

The initialization is similar to the one for UITabBarController. Create an instance of the tabBarController and initialize its viewControllers.

let firstViewController = RDVFirstViewController(nibName: nil, bundle: nil)
let firstNavigationController = UINavigationController(rootViewController: firstViewController)

let secondViewController = RDVSecondViewController(nibName: nil, bundle: nil)
let secondNavigationController = UINavigationController(rootViewController: secondViewController)

let thirdViewController = RDVThirdViewController(nibName: nil, bundle: nil)
let thirdNavigationController = UINavigationController(rootViewController: thirdViewController)

let tabBarController = RDVTabBarController()
tabBarController.viewControllers = [firstNavigationController, secondNavigationController, thirdNavigationController]

self.viewController = tabBarController

Customize RDVTabBarController

Each RDVTabBarItem has selectedBackground, unselectedBackground and corresponding properties for the icons: selectedImage and unselectedImage.

func customizeTabBarForController(_ tabBarController: RDVTabBarController) {
    guard let items = tabBarController.tabBar.items else {

    let finishedImage = UIImage(named: "tabbar_selected_background")
    let unfinishedImage = UIImage(named: "tabbar_normal_background")
    let tabBarItemImages = ["first", "second", "third"]

    var index = 0
    for item in items {
        item.setBackgroundSelectedImage(finishedImage, unselectedImage: unfinishedImage)
        let selectedimage = UIImage(named: "(tabBarItemImages[index])_selected")
        let unselectedimage = UIImage(named: "(tabBarItemImages[index])_normal")
        item.setFinishedSelectedImage(selectedimage, unselectedImage: unselectedimage)

        index += 1

Make the tab bar translucent

RDVTabBar has translucent property which determines how it is going to be handled.

let tabBar = tabBarController.tabBar

// After the tabBarController initialization
tabBar.translucent = true

// Customize the tabBar background
tabBar.backgroundView.backgroundColor = UIColor(red: 245/255.0,
                                                        green: 245/255.0,
                                                        blue: 245/255.0,
                                                        alpha: 0.9)
// Inside the tabbed viewControllers
if let tabBar = self.rdv_tabBarController?.tabBar, tabBar.translucent == true {
    let insets = UIEdgeInsets(top: 0, left: 0,
                                      bottom: tabBar.frame.height,
                                      right: 0)
    self.tableView.contentInset = insets
    self.tableView.scrollIndicatorInsets = insets


  • Swift3.0
  • iOS 8.0 or later
  • Xcode 8



RDVTabBarControllerSwift is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "RDVTabBarControllerSwift"

Drag & Drop

Add the items from RDVTabBarControllerSwift directory to your project.


chenjiang, [email protected]
qq: 841346457


RDVTabBarControllerSwift is available under the MIT license. See the LICENSE file for more info.

Latest podspec

    "name": "RDVTabBarControllerSwift",
    "version": "0.1.2",
    "summary": "Highly customizable tabBar and tabBarController for iOS, written by Swift.",
    "description": "TODO: Highly customizable tabBar and tabBarController for iOS, written by Swift. Supports iPad and iPhone,Supports landscape and portrait orientations,Can be used inside UINavigationController,Customizable badges",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "chenjiang": "[email protected]"
    "source": {
        "git": "",
        "tag": "v0.1.2"
    "platforms": {
        "ios": "8.0"
    "source_files": "RDVTabBarControllerSwift/Classes/**/*",
    "pushed_with_swift_version": "3.2"

Pin It on Pinterest

Share This