Метод делегата UIPageViewController вызывается только в первый раз - PullRequest
0 голосов
/ 25 марта 2020

У меня есть 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)
    }
...