【SwiftUI】BindableObject を試してみる

BindableObject を試してみた。

www.hackingwithswift.com

シングルトンパターンで合わせたら、どこからでも参照できて、編集もできた。

yuu.1000quu.com

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 ではさらに書き方が変わっていた。

titirobo-develop.hatenablog.jp