Bläddra i källkod

MediaViewController: Add MediaCategoryDelegate to tell the controller to update the navigationbar

(fixes #508)
Carola Nitz 6 år sedan
förälder
incheckning
3b2be6999e

+ 11 - 2
Sources/MediaCategories/MediaCategoryViewController.swift

@@ -13,6 +13,10 @@
 
 import Foundation
 
+protocol MediaCategoryViewControllerDelegate: NSObjectProtocol {
+    func needsToUpdateNavigationbarIfNeeded(_ viewController: VLCMediaCategoryViewController)
+}
+
 class VLCMediaCategoryViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout, UISearchResultsUpdating, UISearchControllerDelegate, IndicatorInfoProvider {
 
     var model: MediaLibraryBaseModel
@@ -31,6 +35,7 @@ class VLCMediaCategoryViewController: UICollectionViewController, UICollectionVi
     private var cachedCellSize = CGSize.zero
     private var toSize = CGSize.zero
     private var longPressGesture: UILongPressGestureRecognizer!
+    weak var delegate: MediaCategoryViewControllerDelegate?
 
 //    @available(iOS 11.0, *)
 //    lazy var dragAndDropManager: VLCDragAndDropManager = { () -> VLCDragAndDropManager<T> in
@@ -91,8 +96,12 @@ class VLCMediaCategoryViewController: UICollectionViewController, UICollectionVi
     @objc func reloadData() {
         DispatchQueue.main.async {
             [weak self] in
-            self?.collectionView?.reloadData()
-            self?.updateUIForContent()
+            guard let self = self else {
+                return
+            }
+            self.delegate?.needsToUpdateNavigationbarIfNeeded(self)
+            self.collectionView?.reloadData()
+            self.updateUIForContent()
         }
     }
 

+ 11 - 1
Sources/MediaViewControllers/MediaViewController.swift

@@ -12,7 +12,8 @@
 
 import UIKit
 
-class VLCMediaViewController: VLCPagingViewController<VLCLabelCell> {
+class VLCMediaViewController: VLCPagingViewController<VLCLabelCell>, MediaCategoryViewControllerDelegate {
+
     var services: Services
     private var rendererButton: UIButton
     private var sortButton: UIBarButtonItem?
@@ -37,6 +38,9 @@ class VLCMediaViewController: VLCPagingViewController<VLCLabelCell> {
             newCell?.iconLabel.textColor = PresentationTheme.current.colors.orangeUI
         }
         super.viewDidLoad()
+        viewControllers.forEach {
+            ($0 as? VLCMediaCategoryViewController)?.delegate = self
+        }
         setupNavigationBar()
     }
 
@@ -47,7 +51,13 @@ class VLCMediaViewController: VLCPagingViewController<VLCLabelCell> {
         navigationController?.navigationBar.isTranslucent = false
         updateButtonsFor(viewControllers[currentIndex])
     }
+    // MARK: - MediaCatgoryViewControllerDelegate
 
+    func needsToUpdateNavigationbarIfNeeded(_ viewController: VLCMediaCategoryViewController) {
+        if viewcontroller == viewControllers[currentIndex] {
+            updateButtonsFor(viewcontroller)
+        }
+    }
     // MARK: - PagerTabStripDataSource
 
     override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {