2011-08-08 6 views
0

당신의 도움이 필요합니다. 어쩌면 바보 같지만 오류를 찾을 수 없습니다. 테이블보기와 추가 버튼이 있습니다. 클릭하면 저장 버튼을 눌렀을 때 데이터를 TableView 컨트롤러로 보냅니다.이 버튼을 저장하려면 NSUserDefaults도 사용하고 있습니다. 배열의 데이터.userdefaults를 사용하여 UItableview iphone 행을 삭제 하시겠습니까?

예를 들어 2 개의 새로운 행을 추가하고 1 개의 행을 추가 한 다음 다른 행을 추가 할 때 방금 추가 한 행을 표시하는 대신 삭제 한 마지막 행을 표시합니다.

나는 절약을하고이 방법을 읽고 있어요 :

viewDidAppear에서 나는 NSUserDefaults을 읽고있는 경우 데이터를 얻을. ModalView에서 데이터를 캐치하는 메소드의 을 userdefaults에 저장합니다. commitEditing 방법 userdefaults를 읽은 다음 배열과 테이블에서 행을 삭제 한 다음이 변경 사항을 userdefaults에 저장하십시오.

내가 뭘 잘못하고 있는지 모르겠어. 아무도 도와 줄 수 없어?

답변

0

해당 클래스의 viewWillAppear[self.tableView reloadData];을 사용하십시오. 또한, 다른 뷰 컨트롤러 클래스를 참조 그것을 위해 객체를 생성하고 항상 에 기억 [classObject.tableView reloadData];

를 호출 추가 작업 또는 삭제 작업 후 tableView를 다시로드 할 수 있습니다.

+0

[self.tableView reloadData]를 두어 보았습니다. viewWillApperar하지만 작동하지 않았다, 내가 다시 돌아가서 테이블 뷰 컨트롤러에 내가 마지막 행과 함께 업데이 트를 다시 입력하면 reloadData 사촌에 대한 뭔가가있어, 그 모든 것을 잘 보여주는 것을 의미합니다. 나는 문제가 내가 새로운 행을 추가하고 모달이 기각되는 순간에만 있다고 생각한다. = S. 귀하의 빠른 답변을 주셔서 감사합니다. XD –

0

NSUserDefaults를 테이블의 직접적인 데이터 소스로 사용하지 마십시오. 중간 모델로 저장하십시오. 그런 식으로 디버깅하는 것이 훨씬 쉬울 것입니다.

모델을 사용자 기본값과 동기화 상태로 유지하는 데 문제가있는 경우 변경할 때마다 [[NSUserDefaults standardUserDefaults] synchronize]으로 전화하십시오.

또한 테이블 셀 재사용에 실수를하지 않는지 확인하십시오. 고객 UITableViewCell 클래스가 있고 -prepareForReuse을 올바르게 구현하지 않으면 이전 데이터가 표시 될 수 있습니다.

+0

안녕하세요, David 님, 시간을내어 주셔서 감사합니다. 저장 될 때마다 동기화 메소드를 호출하고 -prepareForReuse에 대해 들었습니다. 그래서 조금 검색했고 그 메소드를 발견했습니다. 사용자 지정 셀에 대한 값을 다시 설정하지만 어떤 값을 다시 만들어야하는지,이 메서드를 언제 호출해야하는지 모릅니다. 이 pls에 대해 더 많이 말해 줄 수 있니? –

+0

수동으로 호출해서는 안되며 UITableViewCell의 하위 클래스로 재정의됩니다. 커스텀 UITableViewCell 서브 클래스를 사용하지 않는다면 문제가되지 않습니다. 더 많은 도움이 필요하면 코드를 게시해야합니다. –

관련 문제