нет, невозможно ! isPresented accept Binding, это означает, что состояние обновляется, если лист будет отклонен. Какое из состояний A, stateB нужно изменить? или они оба? Даже если кто-то попытается определить оператор &&, где левая и правая части - Binding, это очень плохая идея. Не пытайтесь сделать это!
Переместите логи c в вашу модель, лучше вне любого вида .
ОБНОВЛЕНИЕ (для Asperi)
это действительный код (с вашим добавочным номером)
struct ContentView: View {
@State private var isFirst = true
@State private var isSecond = false
var body: some View {
VStack {
Button("TestIt") {
self.isSecond = true
}
.sheet(isPresented: $isFirst && $isSecond) {
Text("A")
}
}
}
}
Попробуйте! Нажатие TestIt откроет лист. Нет кнопки «go назад», но вы можете отклонить ее с помощью хорошо известного жеста. И попробуйте снова нажать TestIt ...