我需要一些帮助为以下'问题'选择'正确'的解决方案。防止视图控制器被重置 - UINavcontroller + Storyboard + Segue的
我使用新的故事板功能将我的应用程序的所有屏幕链接在一起。基本结构能够深入:
[导航控制器] => [视图控制器#1] => [的TabBar控制器] => [视图控制器#2] *
**(和一些其他标签,其现在不重要)*
我已经从第一个视图控制器(#1)附加了一个segue(推)到Tab Bar控制器后面的View Controller。当用户按下第一个控制器上的某些东西并正常工作时,会触发此推送。
// Execute preset segue
[self performSegueWithIdentifier:@"segueEventDetail" sender:self];
当用户(现在是在视图控制器#2)按压导航栏的返回按钮用户回到。假设他现在再次触发segue,第二个视图控制器再次显示,但现在“重置”(空)。 (我相信在阅读了几个论坛和文章之后,这是使用segue时的标准行为,因为这些会破坏并重新启动视图控制器的每一次?)
由于第二个视图的内容(视图控制器被重置)控制器是动态的(取决于来自服务器的JSON响应),因此当用户回来时视图控制器保持完整(或恢复)是'需要的'。
我发现了几个来源(见底部)描述相同的问题,但解决方案各不相同,我需要一些帮助选择正确的问题。
综述:
- 我怎样才能“保留” /保存视图控制器的状态下,当用户按下背部,同时保留使用故事板&最好也Segue公司的
自己的想法的:
#1我现在正在考虑将JSON响应缓存到我的单例类(并从那里到PLIST)并在第二个查看控制器是否存在此数据,并重建视图,然后检查是否有新数据(恢复正常操作)。
#2我想到的另一个是'绕过'segue和手动处理视图的切换,部分解释(Storyboard - refer to ViewController in AppDelegate) - 这也有可能吗?
但也许有一个更容易/更好的选择?
http://www.iphonedevsdk.com/forum/iphone-sdk-development/93913-retaining-data-when-using-storyboards.html Storyboard - refer to ViewController in AppDelegate How to serialize a UIView?
从[UITabBarController类参考](http://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html)“部署标签栏界面时,您必须安装这个视图作为你的窗口的根目录。与其他视图控制器不同,一个标签栏界面不应该被安装为另一个视图控制器的子项。“无关紧要,但重要。 –
我没有意识到这一点!这与我的问题有关,因为我在tabcontroller前面有另一个viewcontroller。 – YDL