В SwiftUI вы можете привязывать элементы пользовательского интерфейса, такие как ползунок, к свойствам в вашей модели данных и реализовывать там свою бизнес-логику.
Например, чтобы получать непрерывные обновления ползунка:
import SwiftUI
import Combine
final class SliderData: BindableObject {
let didChange = PassthroughSubject<SliderData,Never>()
var sliderValue: Float = 0 {
willSet {
print(newValue)
didChange.send(self)
}
}
}
struct ContentView : View {
@EnvironmentObject var sliderData: SliderData
var body: some View {
Slider(value: $sliderData.sliderValue)
}
}
Обратите внимание, что для того, чтобы ваша сцена использовала объект модели данных, вам нужно обновить window.rootViewController
до чего-то вроде ниже в SceneDelegateкласс, в противном случае приложение вылетает.
window.rootViewController = UIHostingController(rootView: ContentView().environmentObject(SliderData()))
