【发布时间】:2022-03-05 00:31:46
【问题描述】:
我正在使用 SwiftUI 制作一个在 iOS 和 iPadOS 中完美运行的应用程序,但是在 iPad 中,当我使用 .navigationViewStyle(DoubleColumnNavigationViewStyle()) 修饰符时会出现一个侧边栏在我的NavigationView 中,我想知道是否有办法以编程方式关闭侧边栏,通常用户可以通过触摸屏幕左上角的按钮来关闭侧边栏,但这是用户交互。可以直接在代码中关闭侧边栏吗?
发现 SwiftUI-Introspect 可以用来完成这个需求,但我想在没有外部库的情况下做到这一点。
这是在 iPadOS 中重现侧边栏的简单代码:
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
NavigationView {
if UIDevice.current.userInterfaceIdiom == .pad {
Text("Sidebar here")
Text("Content here")
}
}.navigationViewStyle(DoubleColumnNavigationViewStyle())
}
}
}
【问题讨论】: