作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 Form
的 NavigationView包含 Picker
和一个 NavigationLink
,并想使用 navigationViewStyle(StackNavigationViewStyle())
.在纵向模式下重新启动时,它的行为符合预期。但是在将设备旋转到横向和纵向并点击 NavigationLink 之后,它会加载目标 View 的多个副本,然后返回到原始 View ,如下所示:
UI gone berserk
这发生在物理设备和模拟器上。
如果我删除 navigationViewStyle(StackNavigationViewStyle())
这个问题不会发生,但我更喜欢它。
我已将问题归结为此代码示例。这是在一个全新的 SwiftUI 项目中运行的,没有对标准 SceneDelegate 进行任何更改。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView{
Form{
NavigationLink(destination: DestinationView()) {
Text("NavigationLink")
}
}.navigationBarTitle("ContentView")
}.navigationViewStyle(StackNavigationViewStyle())
}
}
struct DestinationView: View {
var body: some View {
Text("Destination")
.navigationBarTitle("DestinationView")
}
}
最佳答案
更新:使用 Xcode 12,此错误已修复。
对于 Xcode 11.3.1,Form
中似乎存在一个错误,随着设备的每次方向变化制作 View 的新副本。
示例代码:
import SwiftUI
struct ContentView: View {
var body: some View {
Form{
Text("Text")
}
}
}
开始时的可视化调试器,向左旋转然后向右旋转:
Form
自动采用
GroupedListStyle
似乎确实存在错误。因为一个
List
与
GroupedListStyle
在可视化调试器中显示相同的行为。
import SwiftUI
struct ContentView: View {
var body: some View {
List{
Text("Text")
}.listStyle(GroupedListStyle())
}
}
关于ios - SwiftUI Form 和 StackNavigationViewStyle 狂奔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59895935/
我有一个带有 Form 的 NavigationView包含 Picker和一个 NavigationLink ,并想使用 navigationViewStyle(StackNavigationVie
我是一名优秀的程序员,十分优秀!