我试图将UIPageViewController添加为MainViewController的子控制器,UIPageViewController有2个viewcontroller,问题是我无法与任何视图交互那些属于ui页面视图控制器的视图控制器,不能按下按钮,我试着让userInteraction为uipageviewcontroller中的所有视图启用我也尝试了NSLayoutConstraint,但不能让它工作,这就是我将ui页面视图控制器作为子控制器添加到主控制器的方式
let uiPC = MyUIPageViewController(vm: vm)
uiPC.view.frame = containerView.frame
containerView.addSubview(uiPC.view)
addChild(uiPC)
uiPC.didMove(toParent: self)
也尝试了约束解决方案,将页面控制器的视图设置为容器视图的视图,但是运气不好,无法使用户交互启用。唯一可行的方法是将viewcontroller的视图作为子视图添加,或者将uipageviewcontroller的2视图控制器作为子视图添加到MainViewController在MainViewController中添加UIPageViewController作为子控件
这是UIPageViewController在tvOS中的预期行为:
来自文档:
重要在tvOS中,UIPageViewController类只提供了一种方法在全屏内容页面之间滑动。与iOS不同的是,用户不能与每页上的项目交互或在项目之间移动焦点。
最后我设法通过在我的视图控制器中嵌入2个视图控制器来获得我的设计。一个非交互式的UIPageViewController在后台,用于不同的页面,另一个视图控制器在顶部,带有按钮和清除背景。
我也试图实现一个交互式UIPageViewController通过使用UICollectionView与全屏单元和isPagingEnabled设置为真。但是,正如文档所述,这在tvOS中也不是那么容易,因为tvOS中没有isPaging。