2011-10-05 85 views
0

我建立一个iPhone应用程序,你知道多个视图之间切换,但我面临一个问题,当我在它们之间切换和它是这样的:如何在不丢失数据的情况下切换UIViews?

第二个视图,我切换到UITableView和每时间显示其载入4行,但当我切换到第三个视图,并尝试返回到第二个是表的所有行消失。

我的iPhone模板是基于视图的应用程序。用这样的抢答之间切换的代码:

if (self.webController==nil) { 
    SearchWebViewController *d=[[SearchWebViewController alloc] initWithNibName:@"SearchWebViewController" bundle:nil]; 
    self.webController=d; 
    [d release]; 
} 
[UIView beginAnimations:@"flipping view" context:nil]; 
[UIView setAnimationDuration:0.5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
         forView:self.view cache:YES]; 
[self.view addSubview:webController.view]; 
[UIView commitAnimations]; 

如何的意见之间切换,保持数据的呢?

任何想法,请和保持它的简单,尽可能:)

+0

向我们展示UITableView的代码以及如何创建其数据源。 – Bourne

回答

0

您需要了解的UITableView如何工作的。它不会“记住”显示的行,而是在您滚动或隐藏然后重新显示表时,为每个需要显示的行调用cellForRowAtIndexPath。

因此,您必须保留所显示或可能显示的所有行的“备份副本” - 无论是在屏幕上还是在顶部或底部滚动的那些行。

通常这个“备份副本”是NSMutableDictionaries或自定义对象的NSMutableArray,每个代表一行。当调用cellForRowAtIndexPath时,您可以访问“备份副本”中的值并创建一个单元格来显示数据。如果单元格中的内容发生更改,则将该更改复制到“备份副本”。

相关问题