微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UIPageViewController 重置状态迅速

如何解决UIPageViewController 重置状态迅速

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

解决方法

答案是“这有点复杂。”

背景:

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

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

您的情况:

您总是希望在用户滑动到不同页面然后再次返回时重置您的页面。

我建议您编写页面的视图控制器逻辑,以便它们通过将自身重置为初始状态来响应 viewWillAppear(animated:)。 (将表格视图滚动到顶部、重置按钮状态等。)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。