我正在尝试以编程方式在子视图中创建页面视图。但是,当我将UIPageViewController的dataSource设置为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的ibaction,它未在视图控制器中声明,您需要从连接检查器中删除该ibaction
我有类似的问题,我相信可能是因为您正在向UIPageViewController.view添加UIView()。