我创建了一个基于页面的应用程序并对其进行了一些实验。我的简单目标是拥有一个 UIPageViewController ,其页面将包含一个 UIViewController 持有一个 UITableView (经过进一步检查,如果我使用 UITableViewController 代替,我的实验结果是相同的)。为此,我简单地编辑了项目模板,并使用 Storyboard 的 ContainerView 对象将 UIPageViewController 添加为 RootViewController 的嵌入式视图,如您在此屏幕截图中所见:
每个控制器都通过故事板进行配置,以自动调整滚动视图的内容插图,如果我使用此配置启动项目,一切看起来都很好,并且 DataViewController 的表格视图按预期在导航栏下方正确调整了其内容插图;然而,当用户与 tableview 进行交互时,内容插入中断并且 tableview 覆盖导航栏:
我已经能够通过在 DataViewController 的 viewDidLayoutSubview 方法中手动设置内容插入以及在任何控制器上禁用调整滚动视图插入来解决此问题,因此我不需要这个作为解决问题的答案。我的问题是为什么在第一次从情节提要加载第一个控制器后正确设置内容插图,以及为什么它们在任何类型的用户交互后中断。
如果需要直接测试,这里是项目的链接