Если вы посмотрите на код, размещенный на GitHub, вы можете видеть, что диспетчер страниц отображается из класса EZSwipeController
, Поэтому, учитывая, что вы подклассом EZSwipeController
(или поддерживаете ссылку где-нибудь), теперь вы можете получить доступ к свойству pageViewController
и прокручивать страницу.
Если подкласс:
class MyVC : EZSwipeController{
func buttonTapped(){ /* use self.pageViewController to "page" */ }
}
Жутко, я лично никогда не работал с UIPageViewController
, и, насколько я могу сказать, что нет легко способа для прокрутки страницы в легкой форме.
Я лично не пробовал (обычно я проверяю свои ответы перед публикацией), но вы можете его отключить. Если у вас нет ссылки на контроллер просмотра, вам нужно его получить (дайте мне знать, если это основная проблема).
Существует вопрос о том, так что, кажется, пользуются определенной популярностью в отношении UIPageViewController
пейджинга:
UIPageViewController, how do I correctly jump to a specific page without messing up the order specified by the data source?
И от Apple docs:
Я хотел бы также поощрять вы посмотрите на код внутри из EZSwipeController
репо, где вы можете найти не подвергавшиеся воздействию метод, который делает прокрутку:
@objc private func clickedLeftButton() {
let currentIndex = stackPageVC.indexOf(currentStackVC)!
datasource?.clickedLeftButtonFromPageIndex?(currentIndex)
let shouldDisableSwipe = datasource?.disableSwipingForLeftButtonAtPageIndex?(currentIndex) ?? false
if shouldDisableSwipe {
return
}
if currentStackVC == stackPageVC.first {
return
}
currentStackVC = stackPageVC[currentIndex - 1]
pageViewController.setViewControllers([currentStackVC], direction: UIPageViewControllerNavigationDirection.Reverse, animated: true, completion: nil)
}
линия «ключ» это один:
pageViewController.setViewControllers([currentStackVC], direction: UIPageViewControllerNavigationDirection.Reverse, animated: true, completion: nil)
Я думаю EZSwipeController
также предоставляет контроллеры просмотра содержащийся в pageViewController
, который является свойством, называемым stackVC
, который представляет собой массив контроллеров представления, содержащийся в контроллере просмотра страницы.
Я предполагаю, что с этими знаниями вы должны иметь возможность листать страницу, несмотря на кажущееся немного «хаки» (ИМХО, разработчики должны были разоблачить логику подкачки с самого начала).
Мой совет для вас после того, как все это просто:
Попробуйте свернуть его самостоятельно. Это не огромная задача, и вы полностью контролируете доступность и то, как вы хотите работать с ней. Класс EZSwipeController
довольно мал, поэтому вам не нужно писать много кода для собственного решения. Вы также можете пойти вперед и разблокировать репо и изменить/использовать его по своему усмотрению.
Я надеюсь, что это поможет. Если у вас возникнут какие-либо дополнительные вопросы или если что-то неясно, я буду готов помочь вам.
какая библиотека? –
EZSwipeController. Похоже, что у них есть функциональность по умолчанию для кнопок контроллера навигации, но я просто хочу использовать обычную кнопку. – Walking
Не могли бы вы рассказать о том, чего именно вы пытаетесь достичь? «Код звонка с другого контроллера представления» кажется мне немного двусмысленным ... Более конкретным было бы хорошо –