From 542405017193f52ababe2cd96326fa94ca847e94 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Wed, 26 Jan 2022 15:40:47 -0800 Subject: [PATCH] Change to new iOS 3 panel UISplitViewController --- NetNewsWire.xcodeproj/project.pbxproj | 4 - iOS/Article/ArticleViewController.swift | 13 + iOS/Base.lproj/Main.storyboard | 24 +- iOS/MasterFeed/MasterFeedViewController.swift | 1 + .../MasterTimelineViewController.swift | 9 +- iOS/RootSplitViewController.swift | 5 - iOS/SceneCoordinator.swift | 323 +++--------------- iOS/SceneDelegate.swift | 17 +- .../InteractiveNavigationController.swift | 72 ---- 9 files changed, 100 insertions(+), 368 deletions(-) delete mode 100644 iOS/UIKit Extensions/InteractiveNavigationController.swift diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 8adb942c4..5ef2b4958 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -271,7 +271,6 @@ 518C3193237B00D9004D740F /* DetailIconSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5141E7552374A2890013FF27 /* DetailIconSchemeHandler.swift */; }; 518C3194237B00DA004D740F /* DetailIconSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5141E7552374A2890013FF27 /* DetailIconSchemeHandler.swift */; }; 518ED21D23D0F26000E0A862 /* UIViewController-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 518ED21C23D0F26000E0A862 /* UIViewController-Extensions.swift */; }; - 51934CCB230F599B006127BE /* InteractiveNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51934CC1230F5963006127BE /* InteractiveNavigationController.swift */; }; 51934CCE2310792F006127BE /* ActivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51934CCD2310792F006127BE /* ActivityManager.swift */; }; 51938DF2231AFC660055A1A0 /* SearchTimelineFeedDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51938DF1231AFC660055A1A0 /* SearchTimelineFeedDelegate.swift */; }; 51938DF3231AFC660055A1A0 /* SearchTimelineFeedDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51938DF1231AFC660055A1A0 /* SearchTimelineFeedDelegate.swift */; }; @@ -1268,7 +1267,6 @@ 518B2ED22351B3DD00400001 /* NetNewsWire-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "NetNewsWire-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 518B2EE92351B4C200400001 /* NetNewsWire_iOSTests_target.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetNewsWire_iOSTests_target.xcconfig; sourceTree = ""; }; 518ED21C23D0F26000E0A862 /* UIViewController-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController-Extensions.swift"; sourceTree = ""; }; - 51934CC1230F5963006127BE /* InteractiveNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InteractiveNavigationController.swift; sourceTree = ""; }; 51934CCD2310792F006127BE /* ActivityManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityManager.swift; sourceTree = ""; }; 51938DF1231AFC660055A1A0 /* SearchTimelineFeedDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchTimelineFeedDelegate.swift; sourceTree = ""; }; 5193CD57245E44A90092735E /* RedditFeedProvider-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RedditFeedProvider-Extensions.swift"; sourceTree = ""; }; @@ -2027,7 +2025,6 @@ 51627A92238A3836007B3B4B /* CroppingPreviewParameters.swift */, 512AF9C1236ED52C0066F8BE /* ImageHeaderView.swift */, 512AF9DC236F05230066F8BE /* InteractiveLabel.swift */, - 51934CC1230F5963006127BE /* InteractiveNavigationController.swift */, 51A9A5F42380F6A60033AADF /* ModalNavigationController.swift */, 51EAED95231363EF00A9EEE3 /* NonIntrinsicButton.swift */, 5183CCD9226E31A50010922C /* NonIntrinsicImageView.swift */, @@ -4201,7 +4198,6 @@ 51A1699D235E10D700EB091F /* SettingsViewController.swift in Sources */, 51C45293226509C800C03939 /* StarredFeedDelegate.swift in Sources */, 51D6A5BC23199C85001C27D8 /* MasterTimelineDataSource.swift in Sources */, - 51934CCB230F599B006127BE /* InteractiveNavigationController.swift in Sources */, 769F2ED513DA03EE75B993A8 /* NewsBlurAccountViewController.swift in Sources */, 51BC4B01247277E0000A6ED8 /* URL-Extensions.swift in Sources */, ); diff --git a/iOS/Article/ArticleViewController.swift b/iOS/Article/ArticleViewController.swift index 81e537dc3..144c1b7a2 100644 --- a/iOS/Article/ArticleViewController.swift +++ b/iOS/Article/ArticleViewController.swift @@ -45,6 +45,8 @@ class ArticleViewController: UIViewController { weak var coordinator: SceneCoordinator! + private let poppableDelegate = PoppableGestureRecognizerDelegate() + var article: Article? { didSet { if let controller = currentWebViewController, controller.article != article { @@ -101,6 +103,11 @@ class ArticleViewController: UIViewController { articleExtractorButton.addTarget(self, action: #selector(toggleArticleExtractor(_:)), for: .touchUpInside) toolbarItems?.insert(UIBarButtonItem(customView: articleExtractorButton), at: 6) + if let parentNavController = navigationController?.parent as? UINavigationController { + poppableDelegate.navigationController = parentNavController + parentNavController.interactivePopGestureRecognizer?.delegate = poppableDelegate + } + pageViewController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: [:]) pageViewController.delegate = self pageViewController.dataSource = self @@ -154,6 +161,11 @@ class ArticleViewController: UIViewController { updateUI() } + + override func viewWillAppear(_ animated: Bool) { + navigationController?.isToolbarHidden = false + super.viewWillAppear(animated) + } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(true) @@ -161,6 +173,7 @@ class ArticleViewController: UIViewController { } override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) if searchBar != nil && !searchBar.isHidden { endFind() } diff --git a/iOS/Base.lproj/Main.storyboard b/iOS/Base.lproj/Main.storyboard index 4ccb0e39a..148758d6f 100644 --- a/iOS/Base.lproj/Main.storyboard +++ b/iOS/Base.lproj/Main.storyboard @@ -1,5 +1,5 @@ - + @@ -17,7 +17,7 @@ -