首页 > V2EX > V2EX-请教大佬! swiftui 如何使用 ViewModel 中的 bool 值控制 View 层的 sheet 展示?
2022
05-14

V2EX-请教大佬! swiftui 如何使用 ViewModel 中的 bool 值控制 View 层的 sheet 展示?

anxiousPumpkin:

学习 swift & swiftui 中,遇到一个关于 sheet 展示的小问题,请各位大佬指点。

一般常见的都是在 View 层以@State标记的 bool 变量来控制 sheet 开关

struct ContentView: View {
    
    @State var showSheet:Bool = false
    
    var body: some View {
        VStack{
            Text("Hello, world!")
                .padding()
        }.sheet(isPresented: $showSheet){
            //sheet view...
        }
    }
}

但是如果此时有了 ViewModel ,我想在 ViewModel 里的某些逻辑后再控制 sheet 开关,该如何实现呢?

class MyViewModel : ObservableObject {
    
    
    func sheetControlBySomeJudgement(){
        if (...) {
            //此时需要将 View 层 sheet 展开
            //此时如何关联改变外部的 @State 变量呢?
            //尝试过使用 @Binding 来关联内外 bool 参数,但是好像并没有用
        }
    }
}

from V2EX-最新主题 https://ift.tt/5EuMPQp
V2EX-请教大佬! swiftui 如何使用 ViewModel 中的 bool 值控制 View 层的 sheet 展示? - 第1张  | 牛C网(NiuL.Net)
牛C网:https://j1o.net
牛C网导航:https://niuc1.com
零九导航:https://09.gay

最后编辑:
作者:分享菌
这个作者貌似有点懒,什么都没有留下。

留下一个回复