         transitionsHandler.performTransition(context: context)
     }
     
+    func presentModalSplitViewController(
+        viewController: UISplitViewController,
+        masterControllerDerivedFromClosure closureMaster: (TransitionsHandler -> UIViewController),
+        detailControllerDerivedFromClosure closureDetail: (TransitionsHandler -> UIViewController),
+        animator: TransitionsAnimator = NavigationTransitionsAnimator())
+    {
+        let splitViewController = UISplitViewController()
+        let splitViewTransitionHandler = splitViewController.wrappedInSplitViewTransitionsHandler()
+        defer {
+            presentModalMasterDetailViewController(
+                splitViewController,
+                targetTransitionsHandler: splitViewTransitionHandler,
+                animator: animator
+            )
+        }
+        
+        let masterNavigation = UINavigationController()
+        let detailNavigation = UINavigationController()
+        splitViewController.viewControllers = [masterNavigation, detailNavigation]
+        
+        let masterTransitionsHandler = masterNavigation.wrappedInNavigationTransitionsHandler()
+        let detailTransitionsHandler = detailNavigation.wrappedInNavigationTransitionsHandler()
+
+        splitViewTransitionHandler.masterTransitionsHandler = masterTransitionsHandler
+        splitViewTransitionHandler.detailTransitionsHandler = detailTransitionsHandler
+        
+        let masterViewController = closureMaster(masterTransitionsHandler)
+        let detailViewController = closureDetail(detailTransitionsHandler)
+
+        masterNavigation.viewControllers = [masterViewController]
+        detailNavigation.viewControllers = [detailViewController]
+    }
+    
     func presentModalViewController(
         viewController: UIViewController,
         inNavigationController navigationController: UINavigationController,

        
        transitionsHandler.performTransition(context: context)
    }

    
    func presentViewControllerDerivedFrom(
        closure closure: (TransitionsHandler -> UIViewController),

        
        guard let transitionsHandler = transitionsHandler
            else { assert(false); return }
        
        guard navigationController.viewControllers.contains(viewController)
            else { assert(false); return }
        
