首页 > 解决方案 > 提供的视图控制器数量 (0) 与请求的转换所需的数量 (1) 不匹配

问题描述

我们已经使用页面视图控制器显示滑动以指示用户登录指令,我们面临核心基础崩溃,下面是堆栈跟踪和代码片段:

堆栈跟踪:

Fatal Exception: NSInvalidArgumentException
The number of view controllers provided (0) doesn't match the number required (1) for the requested transition
keyboard_arrow_up
Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 0x2362a8518 __exceptionPreprocess
1  libobjc.A.dylib                0x2354839f8 objc_exception_throw
2  CoreFoundation                 0x2361b2c70 -[NSCache init]
3  UIKitCore                      0x2620c1e94 -[UIPageViewController _validatedViewControllersForTransitionWithViewControllers:animated:]
4  UIKitCore                      0x2620c2a2c -[UIPageViewController _setViewControllers:withCurlOfType:fromLocation:direction:animated:notifyDelegate:completion:]


extension HelpPageViewController: UIPageViewControllerDataSource {
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
        guard let viewControllers = pageViewControllers, let index = viewControllers.index(of: viewController), index > 0 else { return nil }
        return viewControllers[index - 1]

    }

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
        guard let viewControllers = pageViewControllers, let index = viewControllers.index(of: viewController), index < viewControllers.count - 1  else { return nil }
        return viewControllers[index + 1]
    }
}
        override func viewDidLoad() {
            super.viewDidLoad()
            dataSource = self
            pageViewControllers = helpType?.viewControllers
            if let helpViewControllers = pageViewControllers {
                DispatchQueue.main.async{
                    if let firstViewController = helpViewControllers.first {
                        self.setViewControllers([firstViewController], direction: .forward, animated: false, completion: nil)
                    }
                }
            }
        }

    var helpType:HelpType?
    var pageViewControllers:[UIViewController]?
}

标签: iosarraysswiftuipageviewcontrolleruiswipegesturerecognizer

解决方案


推荐阅读