相关疑难解决方法(0)

SwiftUI:强制更新

通常,我们被限制讨论 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)

swift swiftui

25
推荐指数
3
解决办法
3万
查看次数

标签 统计

swift ×1

swiftui ×1