【问题标题】:SwiftUI navigationView within Modal 'pushing' view down模态“下推”视图中的 SwiftUI navigationView
【发布时间】:2020-03-15 16:13:14
【问题描述】:

我目前在 SwiftUI 中有一个模态视图,其中包含一系列指向不同视图的 NavigationLink。但是,当我转到其他视图之一时,它会将所有内容向下推,在视图顶部留下一个空的前额。我该如何解决? 我在下面包含了一个示例屏幕截图。

为了进一步说明,有一个主视图带有一个打开模态视图的按钮。此模式包含一个带有一系列 NavigationLink 按钮的导航视图。在模式中打开导航链接时,即视图被下推时。

【问题讨论】:

标签: swift xcode swiftui ios13 ios-navigationview


【解决方案1】:

你有一个很大的导航栏,尝试将navigationBar displayMode设置为.inline

.navigationBarTitle(Text(""), displayMode: .inline)

【讨论】:

  • 我试过了,虽然它确实使我的视图恢复正常,但它添加了一个顶部栏,其背景颜色与它所在的视图不同。有没有一种简单的方法可以避免这种行为?
【解决方案2】:

这可能是因为您从 NavigationView 推送到的视图也包含在 NavigationView 中。

struct SettingsView: View {
    var body: some View {
        NavigationView {
           NavigationLink(destination: IAPView()) {
               Text("In App Purchase")
           }
       }
    }
}

你可能在 IAPView() 中有这个

struct IAPView: View {
        var body: some View {
            NavigationView { <-- this is causing it
               // your buttons here
           }
        }
    }

【讨论】:

    【解决方案3】:

    您的视图中仍有默认导航栏空间。您需要添加both这两个视图修饰符。

    .navigationBarTitle("")
    .navigationBarHidden(true)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-09
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      相关资源
      最近更新 更多