BindableObject を試してみた。
シングルトンパターンで合わせたら、どこからでも参照できて、編集もできた。
Beta 4
import SwiftUI import Combine final class DispMng: BindableObject { let willChange = PassthroughSubject<DispMng, Never>() var display:String = "" { willSet { willChange.send(self) } } static let shared = DispMng() }
Beta 3
import SwiftUI import Combine final class DispMng: BindableObject { var didChange = PassthroughSubject<Void, Never>() var display:String = "" { didSet { didChange.send(()) } } private init() {} static let shared = DispMng() }
入力
DispMng.shared.display = "test"
出力
import SwiftUI import Combine struct Disp : View { @ObjectBinding var dispViewModel = DispMng.shared var body: some View { Text(dispViewModel.display) } }
追記 2019/08/05
beta5 ではさらに書き方が変わっていた。