我的目标是:
1.要关闭工作表,按钮在工作表中,然后转到另一个视图。
1.当用户返回时,工作表应再次弹出。
我尝试过的:
1.我想使用NavigationLink(titleKey: LocalizedStringKey, destination: View, isActive: Binding<Bool>)
,但它已被弃用。
struct ContentView: View {
@State private var isPresented = true
@State private var selection: PresentationDetent = .medium
var body: some View {
NavigationView {
VStack {
Text("hello")
// navigate to this
NavigationLink {
Text("hello world")
} label: {
}
Spacer()
}
}
.sheet(isPresented: $isPresented) {
VStack {
Text("world")
.presentationDetents([.medium, .large], selection: $selection)
.interactiveDismissDisabled(true)
.presentationDragIndicator(.hidden)
Button {
isPresented = false
} label: {
Text("start")
}
}
}
.padding()
}
}
字符串
2条答案
按热度按时间zysjyyx41#
当前解决方案:不知道这是否遵循苹果HIG或没有。
字符串
tmb3ates2#
所以
NavigationView
也被弃用了,你应该考虑迁移到NavigationStack
。有关更多信息,请参阅NavigationLink for iOS15 and iOS16。下面的版本只有一个导航目的地,就像你一样。但是如果你想添加更多的东西(只需添加更多的枚举案例和更多的导航链接),这个框架已经到位。
1.要关闭工作表,按钮在工作表中,然后转到另一个视图。
通过将适当的枚举附加到导航路径,以编程方式导航到目标视图。这在工作表内容的
.onDisappear
回调中完成。您也可以在按钮回调中执行此操作,但如果工作表首先被解除,则动画效果会很好。1.当用户返回时,工作表应再次弹出。
这是通过在目标视图的
.onDisappear
回调中设置isPresented
标志来实现的。字符串