我想从一个视图以全屏模式显示两个目的地视图。下面是我的代码示例。似乎该功能仅适用于单个演示文稿,如果我定义了第二个 fullScreenCover,第一个 fullScreenCover 无法正常工作。目前有什么解决方法吗?
import SwiftUI
struct TesFullScreen: View {
init(game : Int){
print(game)
}
var body: some View {
Text("Full Screen")
}
}
Run Code Online (Sandbox Code Playgroud)
内容视图
import SwiftUI
struct ContentView: View {
@State var showFullScreen1 : Bool = false
@State var showFullScreen2 : Bool = false
var body: some View {
NavigationView {
VStack {
Spacer()
Button(action: { self.showFullScreen1 = true }) {
Text("Show Full Screen 1")
}
Button(action: { self.showFullScreen2 = true }) {
Text("Show Full Screen 2")
}
Spacer()
}
.navigationBarTitle("TextBugs", displayMode: .inline)
}
.fullScreenCover(isPresented: self.$showFullScreen1){
TesFullScreen(game: 1)
}
.fullScreenCover(isPresented: self.$showFullScreen2){
TesFullScreen(game: 2)
}
}
}
Run Code Online (Sandbox Code Playgroud)
通常,一些相继添加的相同修饰符会被忽略。所以最简单的解决方法是将它们附加到不同的视图,例如
struct FullSContentView: View {
@State var showFullScreen1 : Bool = false
@State var showFullScreen2 : Bool = false
var body: some View {
NavigationView {
VStack {
Spacer()
Button(action: { self.showFullScreen1 = true }) {
Text("Show Full Screen 1")
}
.fullScreenCover(isPresented: self.$showFullScreen1){
Text("TesFullScreen(game: 1)")
}
Button(action: { self.showFullScreen2 = true }) {
Text("Show Full Screen 2")
}
.fullScreenCover(isPresented: self.$showFullScreen2){
Text("TesFullScreen(game: 2)")
}
Spacer()
}
.navigationBarTitle("TextBugs", displayMode: .inline)
}
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用一个.fullScreenCover(item:...修改器并根据输入项在不同的视图中显示。
并非总是接受的答案有效(例如,如果您有一个带有子视图(以前的单元格)的 ScrollView,它包含按钮,设置导航标志)。
但我发现,您也可以将fullScreen-modifier添加到 EmptyView。这段代码对我有用:
// IMPORTANT: Has to be within a container (e.g. VStack, HStack, ZStack, ...)
if myNavigation.flag1 || myNavigation.flag2 {
EmptyView().fullScreenCover(isPresented: $myNavigation.flag1)
{ MailComposer() }
EmptyView().fullScreenCover(isPresented: $myNavigation.flag2)
{ RatingStore() }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |