处理选项卡选择 SwiftUI



以下教程,我有以下代码来显示一个选项卡视图,其中包含 3 个选项卡项,所有选项卡项上都有一个图标,按下时,它们在三个不同的视图之间导航。这一切都工作正常,但是,我希望能够处理选择,并且仅在满足某些条件时才显示视图 2 或 3。

有没有办法获取所选值并检查它,然后检查我自己的条件,然后显示视图是否满足条件,或者如果不是说他们目前不能使用该视图,则显示警报。

从本质上讲,我希望能够在它切换视图之前拦截选择值,也许我需要重写所有这些,但这是我正在寻找的功能,因为这就是我以前的应用程序使用旧框架工作的方式。

@State private var selection = 1
var body: some View
{
TabbedView(selection: $selection)
{
View1().tabItemLabel(
VStack
{
Image("icon")
Text("")
})
.tag(1)
View2().tabItemLabel(
VStack 
{
Image("icon")
Text("")
}).tag(2)
View3().tabItemLabel(
VStack 
{
Image("icon")
Text("")
}).tag(3)
}
}

您可以通过在点击时更改选择的值来做到这一点。您可以使用特定选项卡的 .onAppear() 方法来检查您的状况:

@State private var selection = 1
var conditionSatisfied = false
var body: some View
{
TabbedView(selection: $selection)
{
View1().tabItemLabel(
VStack
{
Image("icon")
Text("")
})
.tag(1)
View2().tabItemLabel(
VStack 
{
Image("icon")
Text("")
}).tag(2)
.onAppear() {
if !conditionSatisfied {
self.selection = 1
}
}
View3().tabItemLabel(
VStack 
{
Image("icon")
Text("")
}).tag(3)
.onAppear() {
if !conditionSatisfied {
self.selection = 1
}
}
}
}

最新更新