首页 > 解决方案 > 从以编程方式创建 pageviewcontroller 的地方获取 viewcontroller 的引用

问题描述

我已经从 BaseViewController 以编程方式创建了 pageViewController -

class BaseViewViewController : UIViewController {
        func viewDidLoad() {
            let viewControllers = [ViewController1, ViewController2, ViewController3]
            let pageController = UIPageViewController(transitionStyle: UIPageViewControllerTransitionStyle.scroll, navigationOrientation: UIPageViewControllerNavigationOrientation.horizontal, options: nil)
            pageController.setViewControllers(viewcontrollers, direction: UIPageViewControllerNavigationDirection.reverse, animated: false, completion: {(_) -> Void in
                    }) 
        self.addChildViewController(pageController)
    }
}

现在,在 ViewController1 中,我想访问 BaseViewController 的引用。但我只能获得 pageViewController 的参考 -

let pageViewController = self.parent

在 ViewController1 内;我需要访问 BaseViewController 实例。对此的任何建议表示赞赏

标签: iosxcodeswift4uipageviewcontrollerios12

解决方案


我认为有几种方法可以解决它。

  1. 尝试父母(祖父母)的父母

    let pageViewController = self.parent
    let baseViewController = pageViewController.parent
    
  2. 在您的 ViewController1、ViewController2 等类上设置一个属性以引用 BaseViewController。


推荐阅读