【问题标题】:How to preserve the state of a UIViewController?如何保留 UIViewController 的状态?
【发布时间】:2017-04-27 05:43:05
【问题描述】:

我有一个包含表格视图的主视图控制器。通过单击单元格,我导航到聊天屏幕(加载了存储的消息)。聊天屏幕应在加载时滚动到底部(最后一条消息)。现在每次滚动到底部看起来都很糟糕。有什么方法可以保留屏幕或视图控制器的状态。那么下次用户访问屏幕时应该已经滚动到底部了吗?

我应该缓存视图控制器吗?这是缓存UIViewController 的适当/标准吗?

我不想知道如何滚动到底部,但想缓存视图控制器/屏幕的位置状态。

【问题讨论】:

  • 你能把你的聊天视图控制器的代码显示出来吗?
  • 您的聊天屏幕是否包含用于显示消息列表的表格视图?
  • 我不能透露代码,但它包含 Realm 数据加载和 UITableViewDataSource 方法来加载聊天消息。就是这样。
  • @JitendraSolanki 是的哥们。我也在问题中提到过
  • 你可以关注这个帖子stackoverflow.com/questions/2770158/…

标签: ios uiviewcontroller


【解决方案1】:

这是问题的重复: UIScrollView scroll to bottom programmatically

请在那里找到答案:) 只需在答案中将动画设置为 false 即可。 确保在 init/viewDidLoad 方法中进行设置。

【讨论】:

  • 你读过这个问题吗?我没有质疑“如何滚动 UITableView”
  • 滚动到底部工作正常。我关心的是如何维护国家。一旦它滚动到底部。现在弹出 VC。现在再次推 vc 应该已经滚动到底部了。需要保存状态。得到?
  • 发布的答案可能不是您想要的,但它仍然具有相关性,因为它说明了如何设置内容偏移量。
  • 因此,当您弹出时,请确保存储偏移量。再次推动时,确保设置了存储的偏移量。 :) 当然,您可以存储在 chatVC 对象中,但您应该在主 VC 中有一个 [chatScreen:contentOffset] 映射。您可以在弹出之前使用委托来存储偏移量。
  • 如果您需要此代码,请告诉我。我会更新答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
相关资源
最近更新 更多