Fix crash on split VC collapse/expand while in explore tab

Also fix iPad explore VC resetting when leaving/reopening the app

Closes #351
This commit is contained in:
Shadowfacts 2023-02-03 18:30:37 -05:00
parent 37847a2f9f
commit 597dd56032
1 changed files with 7 additions and 2 deletions

View File

@ -285,7 +285,9 @@ extension MainSplitViewController: UISplitViewControllerDelegate {
// Search screen has special considerations, all others can be transferred directly.
if tabNavigationStack.count == 1 || ((tabNavigationStack.first as? ExploreViewController)?.searchController?.isActive ?? false) {
exploreItem = .explore
let searchVC = SearchViewController(mastodonController: mastodonController)
// reuse the existing VC, if there is one
let searchVC = getOrCreateNavigationStack(item: .explore).first! as! SearchViewController
// load the view so that the search controller is accessible
searchVC.loadViewIfNeeded()
let explore = tabNavigationStack.first as! ExploreViewController
if let exploreSearchControler = explore.searchController,
@ -316,7 +318,10 @@ extension MainSplitViewController: UISplitViewControllerDelegate {
case is ProfileDirectoryViewController:
exploreItem = .profileDirectory
default:
fatalError("unhandled second-level explore screen: \(tabNavigationStack[1])")
// transfer the navigation stack prepending, the existing explore VC
// if there was other stuff on the explore stack, it will get discarded
toPrepend = getOrCreateNavigationStack(item: .explore).first!
exploreItem = .explore
}
}
transferNavigationStack(from: tabNavController, to: exploreItem!, skipFirst: skipFirst, prepend: toPrepend)