我试图通过使用 NavigationView 来利用 SwiftUI 2.0 中的内置侧边栏:
NavigationView {
MainView()
ListView()
DetailView()
}.navigationBarHidden(true)
但是,由于我想使用自己的自定义后退按钮,因此我隐藏了导航栏,并尝试用代码切换边栏,这是行不通的。 / p>
self.presentationMode.wrappedValue.dismiss()
我已经看到了许多针对 macOS 的解决方案:
NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil)
但是,谢谢,我似乎找不到与 iPad 相当的产品。
答案 0 :(得分:0)
所以这不是一个好的长期解决方案,但如果你像我一样并且 100% 需要本地方法来工作,这里是它可以被黑客攻击的方式。使用 https://github.com/siteline/SwiftUI-Introspect 您可以在层次结构中找到正确的视图控制器并设置显示模式。
Text("Some View").introspectViewController { vc in
guard let splitVC = vc.parent?.parent as? UISplitViewController else {
return
}
splitVC.preferredDisplayMode = .oneBesideSecondary
}
这是BRITTLE,但它有效。