Ios 如何使用SwiftUI显示fullstack模式?
我的应用程序中的大部分导航都有一个导航栏和一个底部的选项卡栏。当我点击一个按钮时,我试图显示一个全屏视图,有效地删除了所有导航 关于SO的其他问题在没有导航栏或选项卡栏的情况下解决这个问题,所以它们并不能真正回答我的用例 以下是我尝试过的:Ios 如何使用SwiftUI显示fullstack模式?,ios,swift,iphone,swiftui,Ios,Swift,Iphone,Swiftui,我的应用程序中的大部分导航都有一个导航栏和一个底部的选项卡栏。当我点击一个按钮时,我试图显示一个全屏视图,有效地删除了所有导航 关于SO的其他问题在没有导航栏或选项卡栏的情况下解决这个问题,所以它们并不能真正回答我的用例 以下是我尝试过的: 单击时隐藏导航栏和选项卡栏:不适用于选项卡栏。如果我在关闭全屏视图时试图返回到另一个视图,则顶部导航会出现问题 使用模态:它可以工作,但不是全屏,这不符合我的意图 在我用按钮切换的所有内容上使用ZStack:这不会隐藏选项卡栏 有解决方案吗,还是我应该放
- 单击时隐藏导航栏和选项卡栏:不适用于选项卡栏。如果我在关闭全屏视图时试图返回到另一个视图,则顶部导航会出现问题
- 使用模态:它可以工作,但不是全屏,这不符合我的意图
- 在我用按钮切换的所有内容上使用ZStack:这不会隐藏选项卡栏
谢谢这里是一个可能的解决方案演示
struct DemoModalOverTabView:View{
@State private var showModally=false
var body:一些观点{
ZStack{
TabView{//非常感谢!我没有想到在包含选项卡的视图中设置ZStack
struct DemoModalOverTabView: View {
@State private var showModally = false
var body: some View {
ZStack {
TabView { // << main tab view
DemoTab
}.disabled(showModally) // << deactivate forcefully
if showModally {
DemoModal // << modal view
.zIndex(1) // << required !!
.transition(.move(edge: .bottom)).animation(.default)
}
}
}
var DemoTab: some View {
Button("Show") { self.showModally = true }
.tabItem { Image(systemName: "person") }
}
var DemoModal: some View {
Button("Hide") { self.showModally = false }
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.yellow)
.edgesIgnoringSafeArea(.all)
}
}