SwiftUI 中出现两个后退按钮的问题通常是由于导航栈的管理不当导致的。在 SwiftUI 中,NavigationView
和 NavigationLink
用于构建导航界面,而每个 NavigationLink
都会在导航栈中添加一个新的视图。如果导航栈中存在多个相同的视图,或者由于某些操作导致视图被重复添加到栈中,就可能出现两个后退按钮的情况。
presentationMode
或 .sheet
进行模态展示。NavigationView
和 NavigationLink
进行层级导航。要解决这个问题,你需要检查以下几点:
NavigationLink
或者在视图中多次调用导航方法。isDetailLink
属性: 在 iPadOS 上,可以使用 isDetailLink(false)
来避免不必要的详情视图导航。以下是一个简单的 SwiftUI 应用示例,展示了如何正确使用 NavigationView
和 NavigationLink
:
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List(0..<5) { number in
NavigationLink(destination: DetailView(number: number)) {
Text("Row \(number)")
}
}
.navigationTitle("Main List")
}
}
}
struct DetailView: View {
let number: Int
var body: some View {
Text("Detail for \(number)")
.navigationTitle("Detail")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
在这个示例中,每次点击列表项时,都会导航到一个新的详情视图,而不会出现两个后退按钮的问题。
NavigationLink
。NavigationLink
只被使用一次。通过以上步骤,你应该能够解决 SwiftUI 中出现两个后退按钮的问题。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云