Snapchat-Swipe-View загружает все viewControllers и мнения в Scrollview из SnapContainerViewController сразу.
Все viewControllers являются childViewController SnapContainerViewController.
поэтому
все viewControllers будут получены viewDidLoad и viewDidAppear сразу
технически все viewControllers уже на "появляются" состоянии, то он не будет "viewDidAppear" снова перед "viewDidDisappear"
изменение пейджинга (переход на экран) может быть идентифицировано из события прокрутки.
Пример, чтобы определить, какие ViewController на экране (для горизонтального Scrollview с индексом 0, 1, 2) Аналогичной обработкой для вертикального Scrollview.
Просто добавьте следующий метод обратного вызова в SnapContainerViewController.swift
extension SnapContainerViewController: UIScrollViewDelegate {
func scrollViewDidEndDecelerating(scrollView: UIScrollView){
let fullWidth = scrollView.frame.size.width
let pageNo: NSInteger = lround(Double(scrollView.contentOffset.x/fullWidth))
print("page is shown:", pageNo)
}
Не могли бы вы уточнить, что вы подразумеваете запустить код каждый раз, когда вы создать экземпляр нового контроллера представления. Если вы просто хотите запускать код каждый раз, когда представление отображается пользователю, то, возможно, viewWillAppear или viewDidAppear - это то, что вам нужно? – Welton122
'viewDidload' запускается только один раз, когда представление инициализируется. и 'viewdidAppear' запускается каждый раз после появления представления. – Lion
@ Welton122 Как я уже говорил, 'viewDidAppear' запускается только один раз при использовании этого пакета Github. Если вы загрузите пакет Github и протестируете его, вы увидите, что он не запускается более одного раза. –