2020-08-27 21:26:12 -07:00
|
|
|
//
|
|
|
|
// SplitViewDelegate.swift
|
|
|
|
// NewsBlur
|
|
|
|
//
|
|
|
|
// Created by David Sinclair on 2020-08-27.
|
|
|
|
// Copyright © 2020 NewsBlur. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
|
|
|
/// Split view delegate.
|
|
|
|
class SplitViewDelegate: NSObject, UISplitViewControllerDelegate {
|
|
|
|
|
2020-11-24 21:34:45 -08:00
|
|
|
func splitViewController(_ svc: UISplitViewController, topColumnForCollapsingToProposedTopColumn proposedTopColumn: UISplitViewController.Column) -> UISplitViewController.Column {
|
2022-11-18 19:51:09 -06:00
|
|
|
if UIDevice.current.userInterfaceIdiom == .phone {
|
|
|
|
if let navController = svc.viewController(for: .secondary) as? UINavigationController, let detailController = navController.viewControllers[0] as? DetailViewController, let storyController = detailController.currentStoryController, storyController.hasStory {
|
|
|
|
return .secondary
|
|
|
|
} else {
|
|
|
|
return .primary
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return .primary
|
|
|
|
}
|
2020-11-24 21:34:45 -08:00
|
|
|
}
|
2020-12-24 13:49:27 -08:00
|
|
|
|
|
|
|
func splitViewController(_ svc: UISplitViewController, displayModeForExpandingToProposedDisplayMode proposedDisplayMode: UISplitViewController.DisplayMode) -> UISplitViewController.DisplayMode {
|
2021-01-16 20:47:03 -08:00
|
|
|
if let supplementaryNav = svc.viewController(for: .supplementary) as? UINavigationController,
|
|
|
|
supplementaryNav.viewControllers.isEmpty,
|
|
|
|
let primaryNav = svc.viewController(for: .primary) as? UINavigationController,
|
2021-04-23 20:48:19 -07:00
|
|
|
let feedsList = primaryNav.viewControllers[0] as? FeedsViewController {
|
|
|
|
if primaryNav.viewControllers.count > 1,
|
|
|
|
let feedDetail = primaryNav.viewControllers[1] as? FeedDetailViewController {
|
|
|
|
supplementaryNav.viewControllers = [feedDetail]
|
|
|
|
} else if let feedDetail = feedsList.appDelegate.feedDetailViewController {
|
|
|
|
supplementaryNav.viewControllers = [feedDetail]
|
|
|
|
}
|
2021-01-16 20:47:03 -08:00
|
|
|
}
|
|
|
|
|
2020-12-24 13:49:27 -08:00
|
|
|
if UIDevice.current.userInterfaceIdiom == .phone, proposedDisplayMode == .twoOverSecondary {
|
|
|
|
return .oneOverSecondary
|
|
|
|
} else {
|
|
|
|
return proposedDisplayMode
|
|
|
|
}
|
|
|
|
}
|
2023-08-11 11:40:13 -06:00
|
|
|
|
|
|
|
func splitViewController(_ svc: UISplitViewController, willChangeTo displayMode: UISplitViewController.DisplayMode) {
|
|
|
|
|
|
|
|
}
|
2020-08-27 21:26:12 -07:00
|
|
|
}
|