2010-12-04 2 views
0

때로는 작은 문제가 무시되어 마지막으로 처리 할 수 ​​있지만 나에게 일어나는 악몽이 될 수도 있습니다.TableView의 viewWillAppear()가 호출되었지만 데이터가 새로 고쳐지지 않습니다.

미리 감사드립니다. 내 앱의 설정 페이지에는 tableView가 포함되어 있으며 모든 설정 요소는 뷰 중 하나입니다. 설정 항목 (행) 제공 중 하나는 다른 listTableView의 항목 목록을 확장합니다. navigationSet.leftButton (Back)을 사용하여 내 설정 tableView로 돌아 왔을 때 listTableView에서 선택을 한 후에, 선택한 항목 값이 이전 항목의 값과 겹쳐집니다. viewWillAppear의 [tableView reloadData] 의미에서 tableView 행은 신선하지만 그려지지 않습니다. 셀의 UI를 새로 고치지 않습니다.

setTableView에 UIButton 등의 하위보기가있는 경우 최신 값을 사용할 수 있지만 해결 방법으로 사용할 수 있지만이 행을 다시 선택해야하는 유일한 문제는 선택시 행을 선택할 때 새 값과 겹치는 이전 값이 있음을 유의하십시오.

나는 어떤 제안이나 샘플 코드를 사용해도 도움이 될 것입니다.

주셔서 감사합니다 viewWillAppear 방법 톤 아 미트 싱

+0

'tableView : cellForRowAtIndexPath :'메소드와'viewWillAppear' 메소드에는 무엇이 있습니까? – BoltClock

답변

0

사용 [tableView reloadData];.

+0

viewWillAppear에서 reloadData를 사용하고 있는데 데이터가 UIbutton에 배치 된 경우에만 그 이유가 ... – AmitSingh

0

또는 viewDidAppear 방법

0

가 직면하고있는 문제의 [tableView reloadData];을 사용하는 재사용 셀 부분 재사용하지 않는 하나 아마도 때문이다. 당신은 블록 내부에서 생성 한

if(cell==nil){} 

구성 요소의 블록 안에 당신이 작성하는 코드를 체크 아웃은 다시받지 않습니다 및 기타 셀에 중복의 원인이 재현 될 수 있습니다.

+0

... if (cell == nil) { \t \t cell = [self getCellContentView : CellIdentifier ]; \t} – AmitSingh

+0

및 getCellContentView가> 포함 - (있는 UITableViewCell *) getCellContentView (는 NSString *)를 cellIdentifier { \t \t있는 UITableViewCell * 셀; \t \t UIViewController * tempController = [[UIViewController alloc] initWithNibName : (NSString *) @ "NibName"번들 : (NSBundle *) nil]; \t \t cell = (UITableViewCell *) tempController.view; \t \t cell.selectionStyle = UITableViewCellSelectionStyleGray; \t \t 복귀 셀; } – AmitSingh

0

내 경우에는 [self.tableView reloadData]를 사용해야했습니다. 대신 [tableView reloadData]; viewWillAppear 메서드에서.

관련 문제