如何解决跟随NavigationLink并返回后,SwiftUI .toolbar消失了
我在NavigationView的顶层添加了一个.toolbar,它最终将用于在不使用滑动手势(向上按钮,向下按钮等)的情况下选择列表中的项目。我还有一个.navigationBar可以访问帐户和设置的其他视图。
在大多数情况下看起来确实不错,但是当我在NavigationView中跟随NavigationLink(在.navigationBarItems中)时,然后使用内置的后退导航,我的.toolbar从顶部消失了级别。
我将.toolbar放在错误的位置吗? .navigationViewStyle(StackNavigationViewStyle())感觉像是一个问题,因为当我注释掉它时,工具栏在导航时不会消失...但是我不喜欢默认行为在横向中的工作方式,所以我依靠它
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
Group {
Section(header: Text("List Items").foregroundColor(.gray).font(.footnote)) {
Text("List Item One")
Text("List Item Two")
Text("List Item Three")
}
}
}.navigationTitle("Top Level List").navigationBarTitleDisplayMode(.inline)
.ignoresSafeArea(.all)
// MARK: NAVBAR
.navigationBarItems(
leading:
NavigationLink(destination: UserView()) {
Image(systemName: "person.crop.circle").font(.title2)
},trailing:
NavigationLink(destination: SettingsView()) {
Image(systemName: "gear").font(.title2)
})
//MARK: - CONTENT NAV
.toolbar {
ToolbarItemGroup(placement: .bottomBar) {
Button(action: {},label: {Label("Mute",systemImage: "speaker.slash.fill")})
Spacer()
Button(action: {},label: {Label("Repeat",systemImage: "arrow.clockwise")})
Spacer()
Button(action: {},label: {Label("Previous",systemImage: "arrow.up")})
Spacer()
Button(action: {},label: {Label("Next",systemImage: "arrow.down")})
Spacer()
Button(action: {},label: {Label("Select",systemImage: "arrow.right")})
}
}
}.navigationViewStyle(StackNavigationViewStyle())
}
}
struct UserView: View {
@State private var username: String = ""
@State private var password: String = ""
var body: some View {
Form {
TextField("Username",text: $username)
SecureField("Password",text: $password)
}
.navigationBarTitle("Account").font(.subheadline)
}
}
struct SettingsView: View {
@State private var setting1: String = ""
@State private var setting2: String = ""
var body: some View {
Form {
TextField("Setting One",text: $setting1)
SecureField("Setting Two",text: $setting2)
}
.navigationBarTitle("Settings").font(.subheadline)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。