فهرست منبع

Optimize RemoteViewController updates and refresh view on tab selection

Jonas Björkert 1 سال پیش
والد
کامیت
672624906b
1فایلهای تغییر یافته به همراه14 افزوده شده و 14 حذف شده
  1. 14 14
      LoopFollow/Remote/RemoteViewController.swift

+ 14 - 14
LoopFollow/Remote/RemoteViewController.swift

@@ -3,29 +3,24 @@
 // Created by Jonas Björkert.
 
 import Combine
-import Foundation
-import HealthKit
 import SwiftUI
 import UIKit
 
 class RemoteViewController: UIViewController {
-    private var cancellable: AnyCancellable?
+    private var cancellables = Set<AnyCancellable>()
     private var hostingController: UIHostingController<AnyView>?
 
     override func viewDidLoad() {
         super.viewDidLoad()
 
-        cancellable = Publishers.CombineLatest(
-            Storage.shared.remoteType.$value.removeDuplicates(),
-            Storage.shared.device.$value.removeDuplicates()
-        )
-        .sink { [weak self] _, _ in
-            DispatchQueue.main.async {
-                self?.updateView()
+        Storage.shared.device.$value
+            .removeDuplicates()
+            .sink { [weak self] _ in
+                DispatchQueue.main.async {
+                    self?.updateView()
+                }
             }
-        }
-
-        updateView()
+            .store(in: &cancellables)
     }
 
     private func updateView() {
@@ -91,7 +86,12 @@ class RemoteViewController: UIViewController {
         }
     }
 
+    override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        updateView()
+    }
+
     deinit {
-        cancellable?.cancel()
+        cancellables.forEach { $0.cancel() }
     }
 }