我一直收到以下错误:
***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'提供的视图控制器数(0)与请求的转换所需的数量(1)不匹配.
我不确定我做错了什么PageViewController
可能导致这个错误.我也试着按照这里提供的答案.但是,解决方案并没有帮助我,因为我不确定我的代码中哪一部分可能导致问题.我对Swift很新,所以任何帮助都会非常感激.
更新:
我发现setViewController
导致问题,并在删除时消失.但是,为什么会导致问题呢?谢谢!
var pageViewController: UIPageViewController! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.pageViewController = harishStoryboard.instantiateViewControllerWithIdentifier("ViewController1") as! UIPageViewController self.pageViewController.dataSource = self let allViewControllers = [harishStoryboard.instantiateViewControllerWithIdentifier("ViewController2") as! ViewController2, harishStoryboard.instantiateViewControllerWithIdentifier("ViewController3") as! ViewController3, harishStoryboard.instantiateViewControllerWithIdentifier("ViewController4") as! ViewController4, harishStoryboard.instantiateViewControllerWithIdentifier("ViewController5") as! ViewController5, harishStoryboard.instantiateViewControllerWithIdentifier("ViewController6") as! ViewController6, harishStoryboard.instantiateViewControllerWithIdentifier("ViewController7") as! ViewController7] let viewControllers = NSArray(object: allViewControllers) self.pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: false, completion: nil) self.addChildViewController(pageViewController) self.view.addSubview(self.pageViewController.view) self.pageViewController.didMoveToParentViewController(self) }
Darko.. 5
这不是页面视图控制器的工作方式.您不传递多个视图控制器,但只传递一个或最多两个.请参阅apple docs:
定义页面视图控制器界面时,您可以一次提供一个内容视图控制器(或一次两个,具体取决于脊椎位置和双侧状态)或使用数据源按需提供.当提供在一个时间内容视图控制器的一个,可以使用setViewControllers:方向:动画:完成:方法来设置当前内容视图控制器.要支持基于手势的导航,必须使用数据源对象提供视图控制器.
我假设你想要手势基础导航,所以你需要实现页面视图控制器委托和数据源.谷歌上有很多页面视图控制器教程.
这不是页面视图控制器的工作方式.您不传递多个视图控制器,但只传递一个或最多两个.请参阅apple docs:
定义页面视图控制器界面时,您可以一次提供一个内容视图控制器(或一次两个,具体取决于脊椎位置和双侧状态)或使用数据源按需提供.当提供在一个时间内容视图控制器的一个,可以使用setViewControllers:方向:动画:完成:方法来设置当前内容视图控制器.要支持基于手势的导航,必须使用数据源对象提供视图控制器.
我假设你想要手势基础导航,所以你需要实现页面视图控制器委托和数据源.谷歌上有很多页面视图控制器教程.