2012-09-10 4 views
0

마스터보기 및 상세보기에 UITableView를 표시하는 UISplitViewController가 있습니다.애니메이션 UITableView 대체 - 애니메이션이 완료 될 때까지 데이터를 표시하지 않습니다.

사용자가 마스터보기 테이블에서 항목을 선택하면 상세보기에서 표를 다시로드하고 페이지를 위로 감아 애니메이션하고 싶습니다.

는 여기에 내가 사용하고 코드입니다 :

UITableView *newTableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStylePlain]; 

[newTableView reloadData]; // ineffective attempt to load data prior to transition 

[UIView transitionFromView:self.tableView 
      toView:newTableView 
      duration:0.8 
      options:UIViewAnimationOptionTransitionCurlUp 
      completion:^(BOOL finished) 
       { 
        [newTableView reloadData]; // needed 
        [self setTableView:newTableView]; 
        [newTableView release]; 
       }]; 

의 전환이 발생하지만,이 '계시'나는 완료 블록에서 데이터를 다시로드를 강제하지 않는 한 jQuery과, 그냥 일반 채워지지 jQuery과입니다. 그런 다음, 그렇게하면 빈 테이블로 전환 한 다음 원하는 데이터를 표시하도록 다시로드합니다. 그리 좋지는 않습니다.

공개 된 표에 이미 필요한 데이터가 표시되도록하려면 어떻게해야합니까? 감사.

답변

0

나는 이것이 작동해야한다고 생각한다.

UITableView *newTableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStylePlain]; 

[self setTableView:newTableView]; //until the table is set, there is no use reloading it 
[newTableView reloadData]; // it should reload now and then animate 

[UIView transitionFromView:self.tableView 
      toView:newTableView 
      duration:0.8 
      options:UIViewAnimationOptionTransitionCurlUp 
      completion:^(BOOL finished) 
       { 
        [newTableView reloadData]; // needed 
        [self setTableView:newTableView]; 
        [newTableView release]; 
       }]; 

reloadData 상기 [self setTableView:newTableView]; 누락되었다. 도움이되기를 바랍니다. 행복 코딩 :)

+0

응답 주셔서 감사하지만, 아니, 그게 아니에요. 미리 tableView를 newTableView로 설정하면, 애니메이션 (의도를 깨기) 전에 보이는 테이블을 다시로드하고 newTable에서 newTable로의 전환을 효과적으로 요구합니다. 실제로 제안 된 변경 사항을 적용하면 컬이 빈 테이블이 아닌 검은 색보기로 움직입니다. 어쨌든 다시 한번 감사드립니다. – Snips

관련 문제