NewsBlur/clients/ios/Classes/SplitViewDelegate.swift
David Sinclair 0a28dd4cf1 #817 (three column layout)
- Fixed issues with the feed detail when rotating a Plus/Max phone to landscape.
2021-04-23 20:48:19 -07:00

37 lines
1.6 KiB
Swift

//
// 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 {
func splitViewController(_ svc: UISplitViewController, topColumnForCollapsingToProposedTopColumn proposedTopColumn: UISplitViewController.Column) -> UISplitViewController.Column {
return .primary
}
func splitViewController(_ svc: UISplitViewController, displayModeForExpandingToProposedDisplayMode proposedDisplayMode: UISplitViewController.DisplayMode) -> UISplitViewController.DisplayMode {
if let supplementaryNav = svc.viewController(for: .supplementary) as? UINavigationController,
supplementaryNav.viewControllers.isEmpty,
let primaryNav = svc.viewController(for: .primary) as? UINavigationController,
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]
}
}
if UIDevice.current.userInterfaceIdiom == .phone, proposedDisplayMode == .twoOverSecondary {
return .oneOverSecondary
} else {
return proposedDisplayMode
}
}
}