首页 > 解决方案 > UIPageViewController Delegate 方法仅在第一次调用

问题描述

我有一个UIPageViewController页面卷曲效果。我正在尝试在 iPad 上实现横向的两页模式。为此,我需要使用脊椎位置委托方法。但问题是这个方法只在 viewcontroller 打开时才第一次被调用。但是对于方向更改,不会调用此方法。

任何实现了这种两页模式的示例或示例项目都将不胜感激。我无法在 swift 中找到任何示例或示例

这是我的代码:

func pageViewController(_ pageViewController: UIPageViewController, spineLocationFor orientation: UIInterfaceOrientation) -> UIPageViewController.SpineLocation {
        if Utils.shared.isIpad() && orientation.isLandscape {
            self.isDoubleSided = true
            self.jumpToPage(page: UserDefaults.currentPage)
            return .mid
        }
        self.isDoubleSided = false
        self.jumpToPage(page: UserDefaults.currentPage)
        return .max
    }

我的寻呼机设置:

override func viewDidLoad() {
        super.viewDidLoad()

        initPager()


        // Do any additional setup after loading the view.
    }

    func initPager() {
        self.dataSource = self
        self.delegate = self
        //        let initialPage = 0
        for index in 0...623 {
            let page = PageController()
            page.dataExchange = dataExchange
            page.page = index
            page.book = book
            self.pages.append(page)
        }
        self.jumpToPage(page: UserDefaults.currentPage)
    }

标签: iosswiftuipageviewcontroller

解决方案


推荐阅读