// 1. First Create a Dummy UIViewController that has a root relation with the UITabBarController // 2. Make this controller implement a UITabBarControllerDelegate // 3. In ViewDidLoad: override func viewDidLoad() { super.viewDidLoad() self.tabBarController?.delegate = self } // 4. Implement this delegate method: func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) { let isModalTab = viewController == self if isModalTab { let cameraVC = UIStoryboard.cameraVC() // 5. HERE YOU SPECIFY THE MODAL VIEW CONTROLLER!!! self.presentViewController(cameraVC, animated: true, completion: nil) } } // 5. That's all