我对使用SwiftUI还是比较陌生的,遇到了一个问题,我找不到在线解决方案,我会尽力解释一下。
我正在构建一个涉及侧面菜单下拉菜单的应用程序,其中包含指向其他各个页面的NavigationLinks。有一个名为SideMenu的结构,其中包含所有NavigationLinks及其自己的NavigationView,因为在第一页中会调用一次(否则,在您进一步进入应用程序时,NavigationBars会彼此堆叠)。代码的基本表示形式:
struct MenuContent: View {
var body: some View {
// the various buttons and their NavigationLinks
}
}
在XCode内的Canvas预览上运行此侧面菜单时,屏幕显示如下:
这是我在完整的应用程序中想要的视图。但是,当我在模拟器中运行代码(这会打开外部XCode应用程序)时,会出现以下视图:
可以看到,在NavigationBar的顶部添加了空白,该空白未出现在“预览画布”表示中。对此原因的任何原因将不胜感激。
答案 0 :(得分:0)
正如评论中回答的那样,此错误的原因是存在两个NavigationViews。
具体来说,第一个视图隐藏了它的NavigationBar,然后将其链接到第二个视图,然后将其分支到应用程序的主要部分。第二个视图包含一个非隐藏的NavigationBar。运行模拟器时,它将空白隐藏的NavigationBar堆叠在第二个视图的非隐藏NavigationBar的顶部。