如何使用 SwiftUI 显示全栈模式?
Posted
技术标签:
【中文标题】如何使用 SwiftUI 显示全栈模式?【英文标题】:How to display a fullstack modal with SwiftUI? 【发布时间】:2020-05-14 21:22:20 【问题描述】:我有一个导航栏,底部有一个标签栏,用于我的应用程序中的大部分导航。单击按钮时,我正在尝试显示全屏视图,从而有效地删除所有导航。
当没有导航栏或标签栏时,关于 SO 的其他问题解决了这种情况,因此它们并没有真正回答我的用例。
这是我尝试过的:
点击时隐藏导航栏和标签栏:不适用于标签栏。如果我在关闭全屏视图时尝试返回另一个视图,顶部导航会出现问题。
使用模式:它可以工作,但不是全屏,这不适合我想要做的事情。
在我用按钮切换的所有内容之上使用 ZStack:这不会隐藏标签栏。
有没有解决办法,还是我应该放弃并使用模态?
谢谢
【问题讨论】:
【参考方案1】:这是一个可能解决方案的演示。
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)
【讨论】:
非常感谢!我没想到在包含选项卡的视图中设置 ZStack以上是关于如何使用 SwiftUI 显示全栈模式?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SwiftUI 将应用程序采用到 iOS 13 暗模式?