gpt4 book ai didi

ios - 使用 SwiftUI 呈现多个模式表

转载 作者:行者123 更新时间:2023-12-01 19:34:15 25 4
gpt4 key购买 nike

我正在尝试使用 .sheet 演示文稿将多个模态视图附加到 NavigationView。

我尝试将 .sheet 链接在一起,只是发现当绑定(bind)变量更改时,只有最后一个可以被触发显示

有没有办法对多个模式执行此操作?

var body: some View {
NavigationView {
ZStack(alignment: .leading) {
MainView()
}
// present profile page
.sheet(isPresented: self.$presentation.profile){
ProfilePage()
}

// present product page
.sheet(isPresented: self.$presentProduct) {
SingleProductView()
}

//present login
.sheet(isPresented: self.$showLogin) {
LoginView(showLogin:self.$showLogin)
}

//present cart
.sheet(isPresented: self.$showCart) {
CartView()
}

// set title
.navigationBarTitle("Title", displayMode: .inline)

// set items
.navigationBarItems(leading: (
NavigationBarLeadingItems()
),trailing: (
NavigationBarTrailingItems()
)
)

最佳答案

在 SwiftUI 中的同一元素上多次调用同一方法将始终导致仅应用最后一个方法。

Text("Some Nice Text")
.forgroundColor(.red)
.forgroundColor(.blue)

这将始终导致文本显示为蓝色而不是红色,即使您将其颜色设置为红色也是如此。 .sheet 调用也是如此。最后一个 .sheet 调用将覆盖其前身。

有两种可能的解决方案:

您将 .sheet 调用放在不同的 View 上。

ViewOne().sheet(...) { ... }
ViewSecond().sheet(...) { ... }

您动态更改 .sheet 调用的内容:

View()
.sheet(...) {
if someState {
return SheetViewOne()
else {
return SheetViewSecond()
}
}
}

关于ios - 使用 SwiftUI 呈现多个模式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60671031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com