【发布时间】:2019-10-22 21:08:49
【问题描述】:
我在玩 SwiftUI,希望在点击按钮时能够返回到上一个视图,就像我们在 UINavigationController 中使用 popViewController 一样。
到目前为止有没有提供的方法?
我也尝试过使用NavigationDestinationLink 这样做,但没有成功。
struct AView: View {
var body: some View {
NavigationView {
NavigationButton(destination: BView()) {
Text("Go to B")
}
}
}
}
struct BView: View {
var body: some View {
Button(action: {
// Trying to go back to the previous view
// previously: navigationController.popViewController(animated: true)
}) {
Text("Come back to A")
}
}
}
【问题讨论】:
-
Apple 可能希望阻止这一点,因此返回按钮是返回的唯一方法。然而,这似乎是一个疏忽。
-
有条件地显示一个视图或另一个视图会起作用吗?还是必须使用
NavigationView? -
@zoecarver 这个想法是让第二个视图添加一个项目(例如一篇博客文章),并带有一个保存按钮以使用我的新项目返回主视图或返回按钮以取消它.这只是我习惯的一种方式,但我可能可以将该视图嵌入到弹出窗口或其他内容中。
-
您可以尝试类似
.presentation(boolCheck ? BView() : nil)的方法(但不确定这是否可行)。其中boolCheck是一个有状态变量。 -
他们不鼓励这样做对我来说毫无意义。当您选择列表中的项目时,它们的原生 Picker 视图会显示弹出行为。似乎 API 尚未最终确定,并且缺少某些内容。