在UIStoryBoard上缓存UIViewControllers以获得更好的性能

时间:2012-09-11 03:05:35

标签: ios xcode storyboard uistoryboard

我正在构建一个todo应用程序。

我正在使用iOS 5中引入的新故事板选项。

我注意到VC没有被缓存,这会在我的应用上产生性能问题。

我的应用程序VC中的一个名为"任务详细信息"并广泛使用。我注意到viewDidLoad:每次显示屏幕时都会调用,大约需要一秒钟(这是一个相当复杂的屏幕,是由代码构建的派对)。

起初我使用segues并将其他屏幕连接到此屏幕。无论何时需要,我都会使用:

 [self performSegueWithIdentifier:@"showTaskDetails" sender:self];

我会准备它的模型:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;

然后我注意到了性能问题。我调查并看到viewDidLoad一次又一次加载。我被迫停止使用segues并缓存TaskDetailsViewController并手动将其添加为模态。我想知道是否有一个缓存解决方案"流行"故事板上的风险投资。否则,我将最终得到一个半解决方案,这将有效但优雅 - 优雅在我们的职业中很重要,不是吗? ; - )

1 个答案:

答案 0 :(得分:0)

UIStoryboard不提供任何缓存机制。您必须自己缓存视图控制器。

您可以缓存特定视图控制器所基于的数据,以便加载时间更快。