2011-10-05 2 views
0

저는 아이폰 앱을 만들었고 그 사이를 전환 할 여러보기를 알고 있습니다. 그러나 이것들 사이를 전환하면 문제가 발생합니다 :데이터를 손실하지 않고 UIView간에 전환하는 방법은 무엇입니까?

두 번째보기로 전환하면 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]; 

보기를 전환하고 데이터를 유지하는 방법은 무엇입니까?

어떤 생각하십시오 그리고 당신은 jQuery과 작동 방식을 이해할 필요가 간단한만큼 가능한 :

+0

UITableView에 대한 코드와 데이터 소스를 만드는 방법을 보여줍니다. – Bourne

답변

0

유지한다. 표시되는 행을 "기억"하지 않지만 스크롤 할 때 또는 표를 숨긴 ​​다음 다시 표시 할 때 표시해야하는 모든 행에 대해 cellForRowAtIndexPath를 호출합니다.

표시하려는 모든 행 (화면에있는 행과 상단 또는 하단에서 스크롤 한 행)의 "백업 복사본"을 보관해야합니다.

일반적으로이 "백업 복사본"은 각각 하나의 행을 나타내는 NSMutableDictionaries 또는 사용자 지정 개체의 NSMutableArray입니다. cellForRowAtIndexPath가 호출되면 "백업 사본"의 값에 액세스하여 데이터를 표시 할 셀을 만듭니다. 셀에서 무언가가 변경되면 해당 변경 사항을 "백업 사본"에 복사합니다.

관련 문제