在SwiftUI中,按钮点击导航到详情视图可能会无效的原因是没有正确设置导航链接或目标视图。
以下是一个解决该问题的示例代码:
import SwiftUI
struct ContentView: View {
@State private var isShowingDetail = false
var body: some View {
NavigationView {
VStack {
Button(action: {
self.isShowingDetail = true
}) {
Text("点击按钮")
}
.sheet(isPresented: $isShowingDetail) {
DetailView()
}
}
.navigationBarTitle("主视图")
}
}
}
struct DetailView: View {
var body: some View {
Text("详情视图")
}
}
在上面的代码中,我们使用了一个isShowingDetail
的布尔类型的状态变量来控制是否显示详情视图。
当按钮被点击时,isShowingDetail
变量的值会被设置为true
,然后DetailView
会以一个sheet的形式显示出来。
请注意,在显示详情视图时,我们使用的是.sheet
修饰符而不是.navigationLink
修饰符。这是因为我们在主视图中使用的是NavigationView
,而不是StackNavigationViewStyle
。
如果我们使用.navigationLink
修饰符,我们必须将主视图包装在NavigationView
中,并使用StackNavigationViewStyle
来正确显示导航链接。
希望这可以帮助你解决按钮点击导航到详情视图不起作用的问题。