如何在 IOS14 的 .fullScreenCover 下使用参数初始化内容

Posted

技术标签:

【中文标题】如何在 IOS14 的 .fullScreenCover 下使用参数初始化内容【英文标题】:How can I init a content with a parameter under .fullScreenCover in IOS14 【发布时间】:2020-09-21 08:55:40 【问题描述】:

.fullScreenCover(isPresented: , 内容: View#>)

我需要使用参数初始化视图并将其传递给.fullScreenCover,我可以使用TesFullScreen.init 毫无问题地执行此操作,但是如果我使用参数初始化视图会出错,这是示例代码。希望有人可以提供帮助。谢谢

无参数工作

     .fullScreenCover(isPresented: self.$showFullScreen, content: TesFullScreen.init)

但是参数不起作用

     .fullScreenCover(isPresented: self.$showFullScreen, content: TesFullScreen(closeFlag: self.$showFullScreen, game: 1))

内容视图

import SwiftUI
struct ContentView: View 
    
    var game : Int = 1
    @State var showFullScreen : Bool = false
    
    var body: some View 
        NavigationView 
            VStack 
                Spacer()
                Button(action:  self.showFullScreen = true ) 
                    Text("Show Full Screen")
                
                Spacer()
            
            .navigationBarTitle("TextBugs", displayMode: .inline)
        
        .fullScreenCover(isPresented: self.$showFullScreen, content: TesFullScreen.init)
//        .fullScreenCover(isPresented: self.$showFullScreen, content: TesFullScreen(game: 1))
    

TesFullScreen

struct TesFullScreen: View 
    
    init(game : Int)
        print(game)
    

    init()
        print("No parameter work")
    
    
    var body: some View 
        Text("Full Screen")
    

完整编码: https://github.com/BellRinging/ForBugsFix.git

【问题讨论】:

你没有正确理解我 - 请创建一个 minimalreproducible 示例 - 这样我就可以将粘贴复制到我的项目中,理想情况下由struct TesFullScreen: View组成,并直接粘贴在问题中(不是作为指向 GitHub 的链接)。 ic..我减少了代码,你可以通过复制和解析来重现。我的 Xcode 版本是 12.0 【参考方案1】:

我终于明白了。需要这样改

.fullScreenCover(isPresented: self.$showFullScreen)
            TesFullScreen(game: 1)
        

【讨论】:

以上是关于如何在 IOS14 的 .fullScreenCover 下使用参数初始化内容的主要内容,如果未能解决你的问题,请参考以下文章

如何调试在 iOS > 14 上打开的 Flutter 通知

如何使用 iOS 14+ 的 ScrollViewReader 和 iOS 13 的部署目标

如何在 ios 版本 14.7.1 中获得相机权限?

iOS 14 的“声音识别”如何使用?

如何在 iOS 14 中更改 UIPickerView 选择的色调颜色?

如何在 iOS 14 @main 文件中获取 UIWindow 值?