You should divide your storyboard in module wise. otherwise your project will take much time in a single change in storyboard.
My suggesion is
you can use Storyboard Reference to connect via segue see example
https://www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards
and if you don't want segue a better solution is have abstract method practice in your every viewcontroller to access from storyboard
Just like
//--------------------------------------------------------------------------------
// MARK: - Abstract Methods
//--------------------------------------------------------------------------------
public class func viewController () -> LoginVC {
return StoryBoard.main.instantiateViewController(withIdentifier: StoryBoard.controller.LoginVC) as! LoginVC
}
//--------------------------------------------------------------------------------
// Now access it with LoginVC.viewController() and do push or present whatever your operation you requred
I manage everything in constant file
public struct StoryBoard {
static let main = UIStoryboard.init(name: "Main", bundle: nil)
struct controller {
static let LoginVC = "LoginView"
}
}