From 7da1aacf28b1deaaa64e37f29a588f52e75c2f84 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Fri, 2 Aug 2019 04:22:47 -0500 Subject: [PATCH] Fix transition to three panel mode --- iOS/AppCoordinator.swift | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/iOS/AppCoordinator.swift b/iOS/AppCoordinator.swift index 77a685214..d5c48ad13 100644 --- a/iOS/AppCoordinator.swift +++ b/iOS/AppCoordinator.swift @@ -35,10 +35,15 @@ class AppCoordinator: NSObject, UndoableCommandRunner { private var detailViewController: DetailViewController? { if let subSplit = rootSplitViewController.viewControllers.last?.children.first as? UISplitViewController { - return subSplit.viewControllers.last as? DetailViewController + if let navController = subSplit.viewControllers.last as? UINavigationController { + return navController.topViewController as? DetailViewController + } } else { - return rootSplitViewController.viewControllers.last?.children.first as? DetailViewController + if let navController = rootSplitViewController.viewControllers.last?.children.first as? UINavigationController { + return navController.topViewController as? DetailViewController + } } + return nil } private let fetchAndMergeArticlesQueue = CoalescingQueue(name: "Fetch and Merge Articles", interval: 0.5) @@ -901,11 +906,10 @@ private extension AppCoordinator { masterNavigationController.viewControllers = [masterFeedViewController] } - if masterNavigationController.viewControllers.count == 1 { + if currentArticle == nil { let systemMessageViewController = UIStoryboard.main.instantiateController(ofType: SystemMessageViewController.self) - let navController = UINavigationController(rootViewController: systemMessageViewController) - navController.isToolbarHidden = false + let navController = addNavControllerIfNecessary(systemMessageViewController, showButton: false) rootSplitViewController.showDetailViewController(navController, sender: self) } else { @@ -917,14 +921,18 @@ private extension AppCoordinator { return UIStoryboard.main.instantiateController(ofType: SystemMessageViewController.self) } }() + + let navController = addNavControllerIfNecessary(controller, showButton: false) masterTimelineViewController!.navigationItem.leftBarButtonItem = nil let subSplit = ensureDoubleSplit() + let masterTimelineNavController = subSplit.viewControllers.first as! UINavigationController masterTimelineNavController.viewControllers = [masterTimelineViewController!] - installDetailController(controller) + subSplit.showDetailViewController(navController, sender: self) + } }