UIPageViewController重置状态swift



我想问一下,是否有任何方法可以在UIPageViewController实现中重置视图。例如,我有两种观点,在视图A中,有一个按钮可以在单击时更改文本,还有一个表视图。一旦我点击了按钮,或者当我在表视图中滚动到中间时,当我滑动到视图B时,我在视图A中的状态将不会重置,当我回到视图A时,按钮的文本不会重置,我的表视图位于我之前滚动的中间位置。一旦我们在UIPageViewController之间移动页面,页面会重置其状态,有什么方法吗?

答案是"这有点复杂">

背景:

如果页面视图控制器中只有两个页面,则页面视图控制器可能会保留对这两个页面的强引用,因此当您在它们之间来回翻页时,它们将保留其状态。

如果您有两个以上的页面,并且没有同时显示两个页面并使用中心书脊,则当前不可见或下一个不显示的页面可能会被释放,然后在用户显示它们时重新创建它们。在这种情况下,页面不会记住它们的状态,除非你做额外的工作,以便它们在离开屏幕时保存状态。

您的案例:

当用户滑动到另一个页面,然后再返回时,您总是希望页面重置。

我建议您编写页面的视图控制器逻辑,以便它们通过将自己重置为启动状态来响应viewWillAppear(animated:)。(将表格视图滚动到顶部,重置按钮状态,或其他任何操作。(

理想情况下,您可能希望将其作为一个由标志(resetsOnAppear: Bool(控制的选项。这样,如果您以后决定不希望发生这种情况,您可以将标志设置为false,而不必重构代码。

最新更新