如何将 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() }
这解决了多值屏幕未显示的问题。
我为 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() }
这解决了多值屏幕未显示的问题。