ios - 在 NavigationView 前面放置可交互的 View 隐藏导航栏

标签 ios swift swiftui

我有一个 NavigationViewNavigationButton在它里面,但我无法让 NavigationButton 位于屏幕顶部并且仍然能够被按下,即使导航栏被隐藏。

这段代码:

struct ContentView : View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationButton(destination: Text("Button Clicked")) {
                    Text("Hello World")
                    .background(Color.yellow)
                }
                Spacer()
            }
        }
        .navigationBarHidden(true)
    }
}

看起来像 this ,但我希望它看起来像 this .

我试过在 VStack 的顶部添加一个负填充(使用 .padding([.top], -95) ,它在视觉上有效,但是我无法通过点击按钮与按钮交互(我认为它位于隐藏的导航栏后面)。我尝试设置 VStackzIndex到 10000 来解决这个问题,但它仍然没有用。有没有办法让我将按钮移到顶部,同时仍然确保按钮在被点击时识别?

最佳答案

添加 navigationBarTitle在隐藏导航栏之前:

struct ContentView : View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationButton(destination: Text("Button Clicked")) {
                    Text("Hello World")
                    .background(Color.yellow)
                }
                Spacer()
        }
        .navigationBarTitle(Text("Title")) // Add this line
        .navigationBarHidden(true)
    }
}

关于ios - 在 NavigationView 前面放置可交互的 View 隐藏导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56510860/

相关文章:

swift - 有没有办法在 swiftUi 的安全文本字段中添加 onEditingChanged?

ios - 如何将结构传递给 NSOperation Init

ios - 如何在 Eureka 表单上实现滑动 ImageView 作为标题

swift - 同步异步函数

ios - 如何在没有 CocoaPods 的情况下获取 Google 地方信息的 swift 二进制文件?

swift - 如何使用主页快速操作打开特定 View

ios - 从 SwiftUI 上的部分列表中删除项目

ios - 使用 SpriteKit 的自定义框架 - 未加载资源文件

ios - apns-collapse-id 不合并多个通知 iOS 10

ios - 抑制 Parse.com ios 通知?