My issue has been solved on Stack Overflow by Benzy Neez.
struct ContentView: View {
let detents: Set<PresentationDetent> = [.height(150), .height(300)]
@State private var selectedDetent: PresentationDetent = .height(150)
@State private var actualHeight: CGFloat?
var body: some View {
Text("Parent View")
.sheet(isPresented: .constant(true)) {
NavigationStack {
Form {
NavigationLink("Button") {
GeometryReader { proxy in
RoundedRectangle(cornerRadius: 20)
.fill(.blue)
.navigationTitle("Child")
.frame(maxHeight: actualHeight)
.animation(.default, value: actualHeight)
.onChange(of: proxy.size.height) { _, newVal in
actualHeight = newVal
}
}
.onAppear {
selectedDetent = .height(300)
}
}
}
.navigationTitle("Parent")
.navigationBarTitleDisplayMode(.inline)
.presentationDetents(detents, selection: $selectedDetent)
.onAppear {
selectedDetent = .height(150)
}
}
}
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: