(Я тестировал на iOS 16.2 и 16.3, и у всех такая проблема)
А вот на iOS 17 работает как положено.
Код: Выделить всё
import SwiftUI
enum CameraSheet:String, Identifiable{
var id: String{
self.rawValue
}
case aaa,bbb
}
class ViewModel: ObservableObject {
@Published var sheet: CameraSheet? = nil
}
class ViewModel1: ObservableObject {
@Published var toggle: Bool = false
}
struct ContentView: View {
@StateObject var viewModel = ViewModel()
@StateObject var viewModel1 = ViewModel1()
var body: some View {
let _ = Self._printChanges()
VStack {
Text("ShowSheet A")
.onTapGesture {
viewModel.sheet = .aaa
}
}
.fullScreenCover(item: $viewModel.sheet) { item in
if item == .aaa {
Button("AAA"){
showBBB()
}
}
if item == .bbb {
Button("AAA"){
showAAA()
}
.onAppear{
viewModel1.toggle.toggle()//
Подробнее здесь: [url]https://stackoverflow.com/questions/78755595/swiftui-fullscreencover-using-enum-keeps-open-and-close-automatically-on-ios-16[/url]