- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建的应用程序由多个 View 组成,我需要在它们之间导航。 NavigationView
很棒,但是我的应用程序针对 MacOS 11,并且没有单一的内容 View 导航样式(我基本上只想一次显示一个 View ,仅此而已)。
我写了一个 custom view这样做,但它不能利用 NavigationLink
和所有其他 helper (或者..可以吗?)
实现自定义 NavigationViewStyle
应该有效,但我无法从协议(protocol)中弄清楚。 Apples 文档并没有真正的帮助。
这实际上显示了一个 View ,但导航似乎不起作用或只是不触发 View 更新。我错过了什么?
struct SingleContentNavigationViewStyle : NavigationViewStyle {
func _body(configuration: _NavigationViewStyleConfiguration) -> _NavigationViewStyleConfiguration.Content {
configuration.content
}
typealias _Body = _NavigationViewStyleConfiguration.Content
}
最佳答案
Apple 概述了实现此目的的方法 here .
我修改了他们的示例代码并首先使用它来生成两列外观:
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink("A", destination: Text("A"))
NavigationLink("B", destination: Text("B"))
NavigationLink("C", destination: Text("C"))
}
.navigationTitle("Letters")
Text("Select a Letter")
}
}
}
在 macOS 模拟器上运行上面看起来像这样:
.navigationViewStyle(StackNavigationViewStyle())
,然后我能够使用相同的代码获得单列外观。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink("A", destination: Text("A"))
NavigationLink("B", destination: Text("B"))
NavigationLink("C", destination: Text("C"))
}
.navigationTitle("Letters")
Text("Select a Letter")
}
.navigationViewStyle(StackNavigationViewStyle())
}
}
现在,有了
.navigationViewStyle(StackNavigationViewStyle())
:
关于SwiftUI 实现自定义 NavigationViewStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64161948/
我正在构建的应用程序由多个 View 组成,我需要在它们之间导航。 NavigationView很棒,但是我的应用程序针对 MacOS 11,并且没有单一的内容 View 导航样式(我基本上只想一次显
我使用下面的代码添加 DrawerLayout 但在设计 View 中给我以下呈现问题。我看不到我的 DrawerLayout。 Failed to find style '**navigationV
我正在尝试让我的导航 View 样式在 iPad 上堆叠,但在 iPhone 上默认。 代码: .navigationViewStyle(UIDevice.current.userInterfaceI
我的应用程序根目录中有一个 NavigationView,其初始状态为 .navigationViewStyle(.stack),但当我导航时,我想更改它样式为 .doubleColumn. 从我的后
我是一名优秀的程序员,十分优秀!