Nic*_*vit 2 iphone ios swift swiftui
我正在尝试使用 .sheet 演示文稿将多个模态视图附加到 NavigationView。
我尝试将 .sheet 链接在一起只是为了发现当绑定变量更改时只能触发最后一个显示
有没有办法为多个模态做到这一点?
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()
)
)
Run Code Online (Sandbox Code Playgroud)
在 SwiftUI 中对同一个 Element 多次调用同一个方法将始终只应用最后一个。
Text("Some Nice Text")
.forgroundColor(.red)
.forgroundColor(.blue)
Run Code Online (Sandbox Code Playgroud)
这将始终导致文本显示为蓝色而不是红色,即使您将其颜色设置为红色。.sheet 电话也是如此。最后一个 .sheet 调用会覆盖它的前辈。
有两种可能的解决方案:
您将 .sheet 调用放在不同的视图上。
ViewOne().sheet(...) { ... }
ViewSecond().sheet(...) { ... }
Run Code Online (Sandbox Code Playgroud)
您可以动态更改 .sheet 调用的内容:
View()
.sheet(...) {
if someState {
return SheetViewOne()
else {
return SheetViewSecond()
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1761 次 |
| 最近记录: |