[英]EmptyView is not showing in iOS 15, Xcode 13
我有嚴重的問題。 我的 Xcode 版本是 13,iOS 版本是 15。
import SwiftUI
struct ContentView: View {
@State var isGo: Bool = false
var body: some View {
ZStack {
Button(action: {
self.isGo = true
}, label: {
Text("Go EmptyView")
})
EmptyView()
.background(Color.green)
.frame(width: 100, height: 100)
.sheet(isPresented: $isGo, onDismiss: nil, content: {
PopupView()
})
}
}
}
struct PopupView: View {
var body: some View {
Rectangle()
.fill(Color.green)
}
}
上面的代碼不起作用。 但是,以前的 Xcode 版本或以前的 iOS 版本是該代碼正在運行。 這是iOS的錯誤嗎? 有什么解決辦法嗎?
你很親密,不知道為什么沒有人提供幫助。 您的代碼確實有效,但理論上不正確,您需要將調用.sheet
移到ZStack
之外並且它可以工作。 但這里有一個更好的方法,沒有所有無用的代碼。
struct ContentView: View {
@State var showemptyview: Bool = false
var body: some View {
Button("Go EmptyView") {
showemptyview.toggle()
}
.sheet(isPresented: $showemptyview) {
EmptyView()
.background(Color.green)
}
}
}
最后在最后一個版本中,您可以直接將幾張紙用於主視圖並且它可以工作。 您不需要使用工作表創建單獨的 EmptyView()
YourMainView()
.sheet(item: $viewModel) { item in
// some logic here
}
.sheet(isPresented: $onther_viewModel.showView, content: {
SomeAnotherView(viewModel: viewModel.getVM())
})
.sheet(isPresented: $onther_viewModel2.showView, content: {
SomeView(viewModel: viewModel.getVM())
})
將“EmptyView()”替換為“Spacer().frame(height:0)”在 iOS15 和 iOS14 上對我有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.