使用导航控制器中的后退按钮时,UITextView中的内容将丢失

时间:2013-07-19 22:37:33

标签: ios uitextfield save uitextview

我有一个使用tabBarController的iOS应用程序。每个选项卡根视图都是导航控制器。在其中一个选项卡中,我使用导航栏上的按钮将我推送到包含UITextView的UIViewController。

我遇到的问题是,当按下导航栏上的后退按钮时,添加到UITextView的任何内容都将丢失。我发现了几个类似的问题都有完全不同的解决方案。我不知道该如何从这里开始。

要清楚我想做什么。用户可以将一些文本输入到UITextView中并导航回第一个视图而不会丢失它。当他们选择返回第二个视图时,文本应该在UITextView中。

content handling of UITextView between two navigation view建议使用委托类的string来保留文本。我担心这里是因为我不确定它是否会保留用户可能的段落格式。

我已经在整个应用程序中使用核心数据,因此我可以轻松创建一个属性来存储它。我只是不确定适当/最好/最简单的方法。

完成我想要做的事情的最佳方法是什么?我对此有点新鲜,所以Snippets真的很有帮助!

更新更多相关信息

UITextView中的文本最终会发布到服务器上。我只需要保留该文本,直到它们发布为止。该应用程序具有登录功能,因此始终有可能再次注销,甚至是其他人。如果我理解正确,这将导致创建一个新的managedObjectContext,从而消除我为个人和NSUserDefaults存储的所有核心数据。有没有办法通过我上面描述的过程存储文本?

1 个答案:

答案 0 :(得分:0)

您描述的文本仅在一个视图控制器中使用,无需将其传递回另一个视图控制器。

因此,您可以从文本视图中获取属性字符串(在编辑会话完成时或从屏幕上删除视图时)。它符合NSCoding,因此您可以将其转换为数据并将该数据保存到磁盘/数据库。

稍后,当重新显示视图时,您可以从磁盘加载数据并重新创建文本以供显示。