视图消失后,iMessage 如何保留 viewController 状态?

How does iMessage preserve viewController state after view disappears?

我观察到 iMessage 会保留聊天中最后输入的消息,即使我转到另一个聊天并返回。

例如。我在聊天 1 中打字。然后在不发送消息的情况下,我转到 Chat2,然后返回 Chat1。最后输入的消息仍然存在。

如果我理解正确,当我在 Chat1 中按下后退按钮时,它应该执行 viewWillDisappear 这应该会破坏所有本地元素。

那最后输入的消息怎么还在?

iMessage 不是唯一执行此操作的应用程序。 Whatsapp 也可以。即使您在 whatsapp 中打开聊天,也可以滚动到旧消息 -> 返回 -> 并再次进入同一聊天。您将看到旧的聊天状态。

如果您想使用更多 UI 元素和值来存储控制器的整个状态,推荐的方法是 App State Restoration

您可以查看以下可用的教程..

https://www.raywenderlich.com/117471/state-restoration-tutorial

http://useyourloaf.com/blog/state-preservation-and-restoration/