NavigationView 的内容未显示 SwiftUI
Posted
技术标签:
【中文标题】NavigationView 的内容未显示 SwiftUI【英文标题】:Content of NavigationView not showing up SwiftUI 【发布时间】:2019-12-23 19:53:22 【问题描述】:我正在尝试在 SwiftUI 中创建一个带有单个 NavigationLink 的 NavigationView。到目前为止我的代码是:
import SwiftUI
struct HomeView: View
var body: some View
NavigationView
NavigationLink(destination: PlayersView())
Text("Players")
.foregroundColor(.white)
.padding(12)
.background(Color.black)
.cornerRadius(12)
.navigationBarTitle(Text("Home"))
struct ContentView_Previews: PreviewProvider
static var previews: some View
HomeView()
在实时预览中或在模拟器上运行时不会显示任何内容。实时预览如下所示:
如果我稍微更改代码并复制 NavigationLink,那么我可以让其中一个 NavigationLink 出现。
struct HomeView: View
var body: some View
NavigationView
NavigationLink(destination: PlayersView())
Text("Players")
.foregroundColor(.white)
.padding(12)
.background(Color.black)
.cornerRadius(12)
NavigationLink(destination: PlayersView())
Text("Players")
.foregroundColor(.white)
.padding(12)
.background(Color.black)
.cornerRadius(12)
.navigationBarTitle(Text("Home"))
我正在尝试创建一个主页,其中包含指向其他 SwiftUI 屏幕视图文件的多个链接。任何帮助表示赞赏!
谢谢。
【问题讨论】:
这是关于 iPad 方向的,请参阅我的答案以获取更新的详细信息。 【参考方案1】:不是这个
NavigationLink(destination: PlayersView())
Text("Players")
.foregroundColor(.white)
.padding(12)
.background(Color.black)
.cornerRadius(12)
这样做
NavigationLink(destination: PlayersView())
Text("Players")
.foregroundColor(.white)
.padding(12)
.background(Color.black)
.cornerRadius(12)
更新:我想我遇到了你的问题,起初我只是自动通过了。 NavigationView 是特定于平台的。默认情况下,iPad 具有 Master/Details 导航样式,根据方向具有不同的呈现方式,因此您不会在 Preview 中看到您的链接,因为 Preview 是 Portrait 并且导航链接在 Sidebar 中,它是隐藏的。
如果你想在这样的预览中看到它,你需要使用.navigationViewStyle(StackNavigationViewStyle())
代替NavigationView
。或者,在您的变体中,只需在模拟器中运行应用程序并使用 CMD-Left/Right arrow
旋转模拟器。
注意:不能旋转预览或现在。以防万一。
【讨论】:
感谢您的回复,但这并没有什么不同。 在导航视图中添加.navigationViewStyle(StackNavigationViewStyle())
解决了这个问题!【参考方案2】:
如果您使用的是 iPad,我想说第一个 navigationLink
用作草图/索引视图,您可以通过向右滑动来将其取出。
【讨论】:
【参考方案3】:试试这个,我最初也有问题,但尝试这种方式对我有用!
var body: some View
NavigationView
VStack(alignment: .center)
//Your ui designs
.navigationBarTitle(Text("Forgot
Password").font(.largeTitle).fontWeight(.medium), displayMode: .inline)
【讨论】:
以上是关于NavigationView 的内容未显示 SwiftUI的主要内容,如果未能解决你的问题,请参考以下文章
在 NavigationView 中清除 SwiftUI 列表未正确返回默认值
DrawerLayout 和 NavigationView - 未找到属性“菜单”