通常,我们被限制讨论 Apple 预发布的内容,但我已经看到很多 SwiftUI 的讨论,所以我怀疑这没关系;就这一次。
我正在学习其中一个教程(我这样做)。
我在“与 UIKit 交互”教程中的可滑动屏幕下方添加了一对按钮:https : //developer.apple.com/tutorials/swiftui/interface-with-uikit
这些是“下一个”和“上一个”按钮。当在一端或另一端时,相应的按钮会隐藏。我有那个工作正常。
我遇到的问题是访问由 PageViewController 表示的 UIPageViewController 实例。
我更改了 currentPage 属性(通过使 PageViewController 成为 UIPageViewController 的委托),但我需要强制 UIPageViewController 以编程方式更改。
我知道我可以通过重绘 PageView 主体来“蛮力”显示,反映一个新的 currentPage,但我不确定如何做到这一点。
struct PageView<Page: View>: View {
var viewControllers: [UIHostingController<Page>]
@State var currentPage = 0
init(_ views: [Page]) {
self.viewControllers = views.map { UIHostingController(rootView: $0) }
}
var body: some View {
VStack {
PageViewController(controllers: viewControllers, currentPage: $currentPage)
HStack(alignment: .center) {
Spacer()
if 0 < currentPage {
Button(action: {
self.prevPage()
}) …Run Code Online (Sandbox Code Playgroud)