如何将 InAppSettingsKit 与 SwiftUI 一起使用?

How can I use InAppSettingsKit with SwiftUI?

我为 IASKAppSettingsViewController 创建了一个 UIViewControllerRepresentable 包装器,因此我可以将它用于我的 SwiftUI 项目。

它适用于切换开关,但当我尝试 PSMultiValueSpecifier 时,我的视图没有转换到具有多个值的屏幕。

下面是我的包装:

import SwiftUI
import UIKit
import InAppSettingsKit

struct SettingsView: UIViewControllerRepresentable {
    typealias UIViewControllerType = IASKAppSettingsViewController
    
    func makeUIViewController(context: UIViewControllerRepresentableContext<SettingsView>) -> IASKAppSettingsViewController {
        return IASKAppSettingsViewController()
    }

    func updateUIViewController(_ uiViewController: IASKAppSettingsViewController, context: UIViewControllerRepresentableContext<SettingsView>) {
        
    }
}

这是不起作用的配置(来自示例应用程序):

        <dict>
            <key>Type</key>
            <string>PSMultiValueSpecifier</string>
            <key>Title</key>
            <string>Multi Value with a long title</string>
            <key>Key</key>
            <string>multivalue_long</string>
            <key>DefaultValue</key>
            <integer>2</integer>
            <key>Values</key>
            <array>
                <integer>1</integer>
                <integer>2</integer>
                <integer>3</integer>
            </array>
            <key>Titles</key>
            <array>
                <string>One</string>
                <string>Two</string>
                <string>Three</string>
            </array>
        </dict>

注意:我没有看到任何错误,只是点击屏幕并没有转换到 select 值。

我发现了问题:

SettingsView 需要包裹在 NavigationView 中,如下所示:

NavigationView { SettingsView() }

这解决了多值屏幕未显示的问题。