Skip to content

Navigation bar shrinking behavior is broken #394

Open
@Uki19

Description

@Uki19

Description

I have a WebView (custom UIViewRepresentable component with WKWebView) within NavigationStack, and by default, scrolling animation of navigation bar (shrinking between large title and inline) is working fine. As soon as I add .introspect modifier on it, the shrinking animation doesn't work anymore.

If I use just a swiftUI ScrollView with ForEach, navbar shrinking works fine in both cases, so it might be something to do with .introspect on custom UIViewRepresentable, but I am not sure.

Video example without .introspect modifier:

Untitled.mp4

Video example with .introspect modifier:

Untitled.2.mp4

Checklist

Expected behavior

Navigation bar has default shrinking animation behavior

Actual behavior

Navigation bar is not shrinking/animating at all

Steps to reproduce

Here's simplest example of the issue, you can comment .introspect modifier to compare behavior

import SwiftUIIntrospect
import SwiftUI
import WebKit

struct WebView: UIViewRepresentable {

    func makeUIView(context: Context) -> WKWebView {
        let webview = WKWebView()
        let request = URLRequest(url: URL(string: "https://www.apple.com")!)
        webview.load(request)
        return webview
    }

    func updateUIView(_ uiView: WKWebView, context: Context) {
    }
}

struct ContentView: View {
    var body: some View {
        NavigationStack {
            WebView()
                .ignoresSafeArea(edges: [.bottom])
                .navigationTitle("Webview")
                .introspect(.navigationStack, on: .iOS(.v17), scope: .ancestor) { nav in
                    print(nav)
                }
        }
    }
}

#Preview {
    ContentView()
}

Version information

1.1.2

Destination operating system

No response

Xcode version information

No response

Swift Compiler version information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions