A simple way to switch between controllers.
Just install the pod and it is ready to use!
- Swift >= 3.0
 - iOS >= 8.0
 
pod 'ViewControllerDescribable'
And after in terminal run command
pod install
In your project create an enumeration like this:
extension UIStoryboard {
   enum Name: String, StoryboardNameDescribable {
       case main = "Main",
       profile = "Profile"
   }
}Describe your view controller like this:
import ViewControllerDescribable
extension SecondViewController: ViewControllerDescribable {
   static var storyboardName: StoryboardNameDescribable {
       return UIStoryboard.Name.profile
   }
}And after push or present from view controller you have:
navigationController?.push(SecondViewController.self, configuration: { vc in
   vc.firstName = "Hello"
})
present(ThirdViewController.self)- by Andrew Kochulab
 - VK