             splitViewController.preferredDisplayMode = .allVisible
         }
         
-        if splitViewController.viewControllers.count == 2 {
-            let mainViewController = splitViewController.viewControllers[0]
-                        
-            let emptyDetailsViewController = self.createPlaceholderDetailsViewController()
-            
-            splitViewController.viewControllers = [mainViewController, emptyDetailsViewController]
-        }
+        self.resetDetailNavigationControllerWithPlaceholder(animated: false)
 
         // Release the current selected item (room/contact/group...).
         self.tabBarCoordinator?.releaseSelectedItems()
     }
     
     func popToHome(animated: Bool, completion: (() -> Void)?) {
-        if let secondNavController = self.detailNavigationController {
-            secondNavController.popToRootViewController(animated: animated)
-        }
+        self.resetDetailNavigationControllerWithPlaceholder(animated: animated)
 
         // Force back to the main screen if this is not the one that is displayed
         self.tabBarCoordinator?.popToHome(animated: animated, completion: completion)

            self.tabBarCoordinator = tabBarCoordinator
            self.masterPresentable = tabBarCoordinator
            self.detailNavigationController = detailNavigationController
            
            self.parameters.router.setRootModule(self.splitViewController)
        } else {

    func toPresentable() -> UIViewController {        
        return self.splitViewController
    }
            
    // TODO: Do not expose publicly this method
    func restorePlaceholderDetails() {                
        // Be sure that the primary is then visible too.
