Xcode 13.1 中的 Navigationlink 问题——空白而不是链接?
Posted
技术标签:
【中文标题】Xcode 13.1 中的 Navigationlink 问题——空白而不是链接?【英文标题】:Navigationlink question in Xcode 13.1 -- Blanks instead of links? 【发布时间】:2021-12-16 08:47:49 【问题描述】:对于新手的问题,我很抱歉,但我不知道为什么 Navigationlink 根本不生成任何链接。 Xcode 可以编译,但是新视图的链接在哪里是空白的。这个特定的视图是来自 ContentView 的 View 3,因此结构是 ContentView -> View 2 -> View 3(试图链接到 View 4)。
struct MidnightView: View
var hourItem: HoursItems
@State var showPreferencesView = false
@State var chosenVersion: Int = 0
@State var isPsalmsExpanded: Bool = false
@State var showLXX: Bool = false
var body: some View
ScrollView (.vertical)
VStack (alignment: .center)
Group
Text (hourItem.hourDescription)
.font(.headline)
Text ("Introduction to the \(hourItem.hourName)")
.font(.headline)
.bold()
.frame(maxWidth: .infinity, alignment: .center)
ForEach (tenthenou, id: \.self)
Text ("\($0)")
Text ("\(doxasi)")
.italic()
.padding()
NavigationView
List
ForEach (midnightHours, id:\.id) watch in
NavigationLink ("The \(watch.watchName)", destination: MidnightWatchView (midnightItem: watch, chosenVersion: self.chosenVersion, isPsalmsExpanded: self.isPsalmsExpanded, showLXX: self.showLXX))
Group
Text ("Absolution of the \(hourItem.hourName)")
.font(.headline)
Text (absolutionTexts[(hourItem.hourName)] ?? " ")
Divider()
Text ("Conclusion of Every Hour")
.font(.headline)
Text (hourConclusion)
Divider()
Text (ourFather)
.padding()
.navigationBarTitle ("The Midnight Hour", displayMode: .automatic)
.navigationBarItems (trailing: Button (action: self.showPreferencesView.toggle()) Text (psalmVersions[chosenVersion])
.sheet(isPresented: $showPreferencesView) PreferencesView(showPreferencesView: self.$showPreferencesView, chosenVersion: self.$chosenVersion, isPsalmsExpanded: self.$isPsalmsExpanded, showLXX: self.$showLXX))
【问题讨论】:
如果没有minimal reproducible example(你的有很多缺失的类型,无法编译),调试起来会很困难。我马上说,在ScrollView
中间有一个NavigationView
看起来很奇怪。通常,您应该只在视图层次结构的顶部有 一个 NavigationView
。
【参考方案1】:
NavigationLink
未出现的原因可能是因为您在ScrollView
中包含了List
。因为List
也是一个滚动组件,所以大小会被弄乱,List
最终的高度为0
。删除List
和对应的,您的链接应该会出现。
您的代码中还有许多其他潜在问题(正如我在评论中提到的那样),包括ScrollView
中间的NavigationView
。我也会删除它,因为您可能在您的视图层次结构中已经有一个更高的NavigationView
。
【讨论】:
完全成功了。谢谢!以上是关于Xcode 13.1 中的 Navigationlink 问题——空白而不是链接?的主要内容,如果未能解决你的问题,请参考以下文章
2021-11-17 xcode12.3 &xcode13.1 下lipo合并framework问题
Xcode 13.1 卡在 Apple M1 Pro 上安装模拟器
在 Xcode 13.1 和 iOS 15 上测试 Unity 游戏时的奇怪行为
命令 CodeSign 在 Xcode 版本 13.1 中因非零退出代码而失败
带有 MacOS 12.0.1 的 Xcode 13.1 无法创建 iPhone 5s 模拟器
macOS Simulator 部署目标设置为 13.5,但此平台支持的部署目标版本范围为 13.1 到 13.4.999