Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 设置UIPageViewController.dataSource时,是否将无法识别的选择器发送到实例?_Ios_Swift_Uipageviewcontroller - Fatal编程技术网

Ios 设置UIPageViewController.dataSource时,是否将无法识别的选择器发送到实例?

Ios 设置UIPageViewController.dataSource时,是否将无法识别的选择器发送到实例?,ios,swift,uipageviewcontroller,Ios,Swift,Uipageviewcontroller,我试图以编程方式在子视图中创建页面视图。但是,当我将UIPageViewController的数据源设置为superviewcontroller时,出现以下错误: -[UIView scrollView]: unrecognized selector sent to instance 0x7fc223ea8300 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIVie

我试图以编程方式在子视图中创建页面视图。但是,当我将UIPageViewController的数据源设置为superviewcontroller时,出现以下错误:

-[UIView scrollView]: unrecognized selector sent to instance 0x7fc223ea8300
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView scrollView]: unrecognized selector sent to instance 0x7fc223ea8300'
这是我的密码:

import UIKit
class MainVC: UIViewController, UIPageViewControllerDataSource {
    private var pages: [UIViewController]
    private let pageVC: UIPageViewController
    init() {
        pages = [UIViewController]()
        for i in 0...1 {
            let vc = UIViewController()
            vc.view = MyUIViewSubclass(index: i)
            pages.append(vc)
        }
        pageVC = UIPageViewController(transitionStyle: .Scroll, navigationOrientation: .Horizontal, options: nil)
        pageVC.view = UIView()
        pageVC.view.translatesAutoresizingMaskIntoConstraints = false
        super.init(nibName: nil, bundle: nil)
        pageVC.dataSource = self //Breakpoints indicate that this is when the exception occurs
        view.addSubview(pageVC.view)
        //...Autolayout...
    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        return pages[0]
    }
    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        return pages[1]
    }
}

提前感谢。

pageVc.view有一个名为scrollview的iAction,它没有在您的视图控制器中声明,您需要从connections inspector中删除该iAction

好的,因此我遇到了与您相同的问题,并且我找到了它发生的原因。 发生此错误的原因是您执行
pageVC.view=UIView()
操作的行。
UIPageViewController的视图有一个滚动视图,在该视图中,VCs之间滚动的魔力得以实现。通过将空UIView设置为它,您正在删除它,而不是使其能够工作。如果您想将某个内容更改为其视图,您应该直接执行,而不是设置另一个。

是否在视图中添加了滚动视图?@S.Karthik否,
MyUIViewSubclass
上只有按钮。我相信scrollView消息与transitionStyle有关:。Scroll。我在完全相同的代码行中遇到了相同的问题,当然我使用了相同的方法(将代码分为视图、代理和控制器)。您找到了解决方案吗??