gpt4 book ai didi

ios - SwiftUI:如何在 macOS 中使用 NavigationView?

转载 作者:行者123 更新时间:2023-12-02 22:49:04 25 4
gpt4 key购买 nike

我有两个独立的 Xcode 项目,我用它们来学习 SwiftUI:

  1. Mac 上真正的 macOS 项目(不是 Catalyst)。
  2. 一个 iOS 项目 (iPhone)。

以下代码创建一个带有主从 View 的简单 NavigationView:

import SwiftUI

struct ListView : View {
var body: some View {
NavigationView {
List() {
NavigationButton(destination: Text("detail 1")) {
Text("row 1")
}
NavigationButton(destination: Text("detail 2")) {
Text("row 2")
}
}
}
}
}

#if DEBUG
struct ListView_Previews : PreviewProvider {
static var previews: some View {
ListView()
}
}
#endif

它在 iOS 上按预期工作👍

但是在 macOS 项目上,与上面相同的代码的工作方式并不相同 🤯

当我在 Mac 上启动该应用程序时,我会看到此窗口

enter image description here

当我单击任何行时,详细信息 View 就会折叠/消失,从不显示详细信息 View 。

enter image description here

有什么想法可以解决这个问题吗?也许我错过了什么?或者这只是一个错误?

最佳答案

这是我的代码,似乎使用 Xcode 12.2 beta 3 修复了它:

import SwiftUI

var listItems = ["Item 1", "Item 2", "Item 3", "Item 4"]
var secondItems = ["Second 1", "Second 2", "Second 3", "Second 4"]

struct ContentView: View
{

@State var select: String? = "Item 1"
var body: some View
{
VStack
{
NavigationView
{
List
{
ForEach((0..<listItems.count), id: \.self)
{index in
NavigationLink(destination: SecondView(), tag: listItems[index], selection: $select)
{
Text(listItems[index])
.padding(.vertical, 2.0)
}
}
Spacer()

}.frame(width:160)
.listStyle(SidebarListStyle())
}

.toolbar
{
Text("this is not the title")
Button(action: {})
{
Label("Upload", systemImage: "square.and.arrow.up")
}
}
.navigationTitle("My Title")
.navigationViewStyle(DoubleColumnNavigationViewStyle())
}
}
}

struct SecondView: View {

var body: some View {
NavigationView {
List
{
ForEach((0..<secondItems.count), id: \.self)
{index in
NavigationLink(destination: Text(secondItems[index]))
{
Text(secondItems[index])
.frame(height: 20)
}
}
}.frame(width:150)
}
}
}

这会产生一个像这样的窗口:

enter image description here

关于ios - SwiftUI:如何在 macOS 中使用 NavigationView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56617181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com