我使用UIPageViewController为“模块屏幕”创建了一个容器。如果设置了上一个屏幕,则主要问题是尺寸错误。
在屏幕截图中,您可以看到显示2个屏幕而不是1.
要设置新屏幕,请使用
func launchViewControllerC(vc: USBaseVaultStepViewcontroller,
step: UIPageViewControllerNavigationDirection,
animated: Bool = true) {
vc.delegate = self
self.pageController.setViewControllers([vc],
direction: step,
animated: true,
completion: nil)
}
对于我使用的上一个屏幕:
func launchPreviousScreen() {
guard let previousStep = self.currentSetupStep.previousStep() else {
return
}
guard let previousController = self.setupStepViewControllerForStep(previousStep) else {
return
}
self.currentSetupStep = previousStep
previousController.delegate = self
self.pageController.setViewControllers([previousController],
direction: UIPageViewControllerNavigationDirection.Reverse,
animated: true,
completion: nil)
}
提示:当 setViewControllers 动画 true 时会发生这种情况。 此外,我发现完成块无法正常工作。
答案 0 :(得分:0)
在使用PageViewController找到我的容器的故事板上,我已禁用选项 Autoresize Subview 。动画期间的“差距”消失了。
但上面的描述并不是解决方案的一个线索。 主要问题是在屏幕上显示的subHeader。我在运行时更改高度约束,这就是 UIPageViewController 不知道屏幕大小正确的原因。 我不得不分开我的屏幕,我已经制作了内幕。我在 UIPageViewController 中使用 UIPageViewController 。而对于知道动画的完美工作。