相关疑难解决方法(0)

使用 iOS 14 @main 时的托管控制器

我正在试验一个“纯”的 SwiftUI 应用程序。它没有,SceneDelegate所以我不确定在 iOS 上运行时我需要的 Hosting Controller 东西放在哪里。

以前在SceneDelegate我有代码会说这样的话:

let contentView = ContentView()
window.rootViewController = UIHostingController(rootView: contentView)
Run Code Online (Sandbox Code Playgroud)

现在我只有一个@main文件:

var body: some Scene {
    WindowGroup {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

那么 Hosting Controller 的东西去哪里了(或者我还能如何访问 SwiftUI 没有的 UIKit 功能?(具体来说,我想弄乱状态栏,自动隐藏主页指示器,以及一些关于亮/暗的事情) SwiftUIpreferredColorScheme不涵盖的模式。)

swiftui

9
推荐指数
3
解决办法
1234
查看次数

userDidAcceptCloudKitShareWith 未被调用

func application(_ application: UIApplication, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShare.Metadata) {...}
Run Code Online (Sandbox Code Playgroud)

在指向共享 cloudkit 记录的链接上单击“确定”后不会被调用。应用程序会打开,但这个函数(应该被调用)不会。

  • CKSharingSupported:YES 列在我的 info.plist 中
  • 我已将记录放入名为“sharedZone”的区域
  • SharedZone 显示在我的区域列表中,在我的私人数据库中。
  • 共享记录显示我被“邀请”
  • 尝试删除应用程序和云数据并重新安装,没有变化
func application(_ application: UIApplication, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShare.Metadata) {
        print("you accepted something")



        let acceptShareOperation: CKAcceptSharesOperation = CKAcceptSharesOperation(shareMetadatas:[cloudKitShareMetadata])

        //acceptShareOperation.qualityOfService = .userInteractive

        acceptShareOperation.perShareCompletionBlock = {meta, share,
            error in
            print("share was accepted")
        }

        acceptShareOperation.acceptSharesCompletionBlock = {
            error in
            /// Send your user to where they need to go in your app
            print("share accepted completion block!")
        }

        CKContainer(identifier: cloudKitShareMetadata.containerIdentifier).add(acceptShareOperation)
    }
Run Code Online (Sandbox Code Playgroud)

预期结果:至少看到“你接受了某些东西”这一行打印在控制台上。

更新:恢复到 IOS11.3 不起作用。

更新:我下载了一个有人使用 …

ios swift cloudkit

7
推荐指数
2
解决办法
582
查看次数

标签 统计

cloudkit ×1

ios ×1

swift ×1

swiftui ×1