我有以下代码:
第一结构:
struct MenuButton: View {
var buttonText: String
var buttonCallView: AnyView
var body: some View {
NavigationView{
NavigationLink(destination: self.buttonCallView) {
Text(self.buttonText)
}
}
}
}
第二结构:
struct ProfileMenuContent: View {
var body: some View {
VStack{
MenuButton(buttonText: "Settings", buttonCallView: AnyView(SettingsView()))
MenuButton(buttonText: "My Favourites", buttonCallView: AnyView(MyFavouritesView()))
MenuButton(buttonText: "Sign Out", buttonCallView: AnyView(SignOutView()))
}
}
}
我想要的东西: 当按下一个按钮时,而不是仅占用新视图的1/3的空间,它应该占据全屏。
答案 0 :(得分:1)
要获得所需的行为,您所需要做的就是从MenuBotton结构内部删除NavigationView并将NavigationView添加到ProfileMenuContent。
新代码:
struct MenuButton: View {
var buttonText: String
var buttonCallView: AnyView
var body: some View {
NavigationLink(destination: self.buttonCallView) {
Text(self.buttonText)
}
}
}
struct ProfileMenuContent: View {
var body: some View {
NavigationView {
VStack {
MenuButton(buttonText: "Settings", buttonCallView: AnyView(SettingsView()))
MenuButton(buttonText: "My Favourites", buttonCallView: AnyView(MyFavouritesView()))
MenuButton(buttonText: "Sign Out", buttonCallView: AnyView(SignOutView()))
}
}
}
}