swiftui - SwiftUI:单击 NavigationLink 时后退按钮消失
问题描述
我正在尝试NavigationLink
在屏幕顶部添加一个,但是一旦我单击它,它就会提示我返回结果,并且“后退”按钮会消失。
SwiftUI 代码:
NavigationView {
VStack {
NavigationLink (destination: Text("COOL")) {
Text("COOL")
}
Spacer()
}
.navigationBarHidden(true)
.navigationBarTitle(Text("Home"))
//.edgesIgnoringSafeArea([.top, .bottom])
}
点击后后退按钮消失NavigationLink
:https ://gyazo.com/9d39936c849f570a05687e41096ddeca
解决方案
恕我直言,当您同时使用.navigationBarHidden(true)
和.navigationBarTitle(Text("Some text))
. 如果您删除最后一个,后退按钮照常工作。尽管如此,我还是尝试在您的代码片段中返回返回按钮。返回第一个视图时它仍然有故障,但后退按钮不会消失。我希望它会有所帮助,你会从这里走得更远:
struct NotHiddenBackButton: View {
@State var hiddingNavBar = true
@State var goToSecondView = false
var body: some View {
NavigationView {
NavigationLink(destination: ViewWithBackButton(hiddingNavBar: $hiddingNavBar), isActive: $goToSecondView) {
VStack {
Text("COOL")
.onTapGesture {
self.hiddingNavBar = false
self.goToSecondView = true
}
Spacer()
}
}
.navigationBarHidden(hiddingNavBar)
.navigationBarTitle(Text("Home"))
}
}
}
struct ViewWithBackButton: View {
@Binding var hiddingNavBar: Bool
var body: some View {
Text("Second view")
.navigationBarTitle("Second view")
.onDisappear() {
self.hiddingNavBar = true
}
}
}
推荐阅读
- arguments - WinDbg 逆向工程参数
- python - 如何在 matplotlib 小部件 RectangleSelector 对象上使用 for 循环而不是递归循环进行迭代?
- r - 删除 data.table 中每个组的第一个日历月
- flutter - flutter:块间通信,不同块之间传递数据事件
- mysql - 通过Sequel Pro mac连接docker mysql
- tabulator - 在制表符单元格中单击输入键时选择标签
- c# - 使用 MIP SDK 解密 .msg 文件时出现异常:NoPolicyException:标签策略不包含数据
- javascript - 在反应钩子中使一个为真,而另一个反对为假
- php - 如何用更少的代码重写来重构代码中的硬编码状态?
- .net - 为什么服务器上收到的 gRPC 截止日期与客户端发送的截止日期不同