Navigation Q:不带导航按钮的导航
我正在尝试在我的应用程序中创建导航菜单。当前,当我单击导航栏中的按钮时,会出现一个演示模式。在那个模型中,我有一个列表中的按钮,不幸的是,我不知道如何工作。理想情况下,我希望按钮在单击时退出演示模式,并导航到特定视图(即,如果我在菜单中按“Profile”,我希望显示“Profile view”)。我尝试使用导航按钮,但它始终显示后退按钮/不退出演示模式Navigation Q:不带导航按钮的导航,navigation,swiftui,Navigation,Swiftui,我正在尝试在我的应用程序中创建导航菜单。当前,当我单击导航栏中的按钮时,会出现一个演示模式。在那个模型中,我有一个列表中的按钮,不幸的是,我不知道如何工作。理想情况下,我希望按钮在单击时退出演示模式,并导航到特定视图(即,如果我在菜单中按“Profile”,我希望显示“Profile view”)。我尝试使用导航按钮,但它始终显示后退按钮/不退出演示模式 //View with button in nav bar struct HomeView : View { @State var
//View with button in nav bar
struct HomeView : View {
@State var showNav: Bool = false
var body: some View {
NavigationView {
List {
Text("hi")
}
.navigationBarItems(leading:
Button(action: {
self.showNav = true
}) {
Image("Image")
.resizable()
.frame(width: 60, height:60)
}
)
}.presentation(showNav ? Modal(NavView(),
onDismiss: { self.showNav = false }) : nil)}
//View With navigation controlls
struct NavView : View {
@State var pressedHome: Bool = false
@State var pressedProfile: Bool = false
var body: some View {
List{
Button(action: {
self.pressedHome = true
}) {
Text("Home")
}
Button(action: {
self.pressedProflie = true
}) {
Text("Profile")
}
}
}
要取消显示视图,请在导航视图中添加一个绑定属性变量:-
struct NavView : View {
@Binding var showNav: Bool
}
然后将其替换到第行下方
presentation(showNav ? Modal(NavView(),
onDismiss: { self.showNav = false }) : nil)}
用这个
presentation(showNav ? Modal(NavView(showNav: $showNav),
onDismiss: { self.showNav = false }) : nil)}
然后在两个按钮动作中添加这一行
Button(action: {
self.pressedHome = true
self.showNav.toggle() //added this line
}) {
Text("Home")
}
Button(action: {
self.pressedHome = true
self.showNav.toggle() //added this line
}) {
Text("Profile")
}