Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过@StateObject进行简单的SwiftUI模式演示和关闭 Xcode 12 beta 6(12A8189n) iPhone 11、iOS 14.0模拟器_Ios_Swiftui - Fatal编程技术网

通过@StateObject进行简单的SwiftUI模式演示和关闭 Xcode 12 beta 6(12A8189n) iPhone 11、iOS 14.0模拟器

通过@StateObject进行简单的SwiftUI模式演示和关闭 Xcode 12 beta 6(12A8189n) iPhone 11、iOS 14.0模拟器,ios,swiftui,Ios,Swiftui,在给定的代码示例中,CreateSomethingView的表示方式有效,但是取消它不起作用。我特别感兴趣的是使用@StateObject并完全避免@State来实现这一点 导入快捷界面 @主要 结构ModalPresentationApp:App{ var body:一些场景{ 窗口组{ ContentView() } } } 最终类ContentModel:ObservableObject{ @出版 var isPresenting=false } 结构ContentView:View{ @

在给定的代码示例中,
CreateSomethingView
的表示方式有效,但是取消它不起作用。我特别感兴趣的是使用
@StateObject
并完全避免
@State
来实现这一点

导入快捷界面
@主要
结构ModalPresentationApp:App{
var body:一些场景{
窗口组{
ContentView()
}
}
}
最终类ContentModel:ObservableObject{
@出版
var isPresenting=false
}
结构ContentView:View{
@状态对象
var contentModel=contentModel()
var body:一些观点{
导航视图{
文本(“内容视图”)
.工具栏{
工具栏项(位置:。导航栏栏栏){
按钮(操作:{
contentModel.isPresenting.toggle()文件
},标签:{
图像(系统名称:“plus.circle”)
})
.sheet(显示:$contentModel.isPresenting){
CreateSomethingView(isPresented:$contentModel.isPresenting)
}
}
}
}
}
}
结构CreateSomethingView:View{
@装订
表示变量:Bool
var body:一些观点{
导航视图{
文本(“CreateSomethingView”)
.工具栏{
工具栏项(位置:.navigationBarLeading){
按钮(操作:{
isPresented=false
},标签:{
图像(系统名称:“xmark.circle.fill”)
})
}
}
}
}
}
只需将工作表附加到适当的位置(根据经验,任何*条都不是视图间绑定的好地方)

这是修理。使用Xcode 12b5/iOS 14进行准备和测试

var body: some View {
    NavigationView {
        Text("ContentView")
            .toolbar {
                ToolbarItem(placement: .navigationBarTrailing) {
                    Button(action: {
                        contentModel.isPresenting = true
                    }, label: {
                        Image(systemName: "plus.circle")
                    })
                }
            }
    }
    .sheet(isPresented: $contentModel.isPresenting) {
        CreateSomethingView(isPresented: $contentModel.isPresenting)
    }
}

这确实有效。奇怪的是,一个普通的
@状态私有变量出现了:Bool
工具栏项
中的
按钮
上附加的
.sheet()
一起工作。