1

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

它适用于 Toggle Switch 但当我尝试 a 时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>

注意:我没有看到任何错误,只是点击屏幕并没有过渡让我选择值。

4

1 回答 1

2

我发现了问题:

SettingsView需要NavigationView像下面这样包裹:

NavigationView { SettingsView() }

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

于 2020-11-01T21:36:36.163 回答