테이블 뷰 셀에 텍스트 필드를 설정 해주었는데 ( 코드로 ) 시뮬레이터에서 텍스트 필드에서 데이터를 입력하고 스크롤해서 내렸다가 다시 올리면 입력했던 데이터가 사라집니다. 해결 방법이 있을까요??
아마 테이블 뷰가 리로드 되어서 인것 같네요.
사용자로부터 입력을 받는 입력 폼으로 테이블뷰를 썼다면, 보통의 경우 스태틱한 테이블뷰를 사용합니다.
그럼 리프레시가 안돼요.
관련 샘플 코드는 올 해 말에 공개할 App Dev Part 2에 있는데, 아직 동영상을 제작 중이니 샘플코드라도 올려드립니다.
설명은 애플의 App Development with Swift 라는 책에 있어요,
샘플코드
https://app.box.com/s/pcdni2lnkida9jgzsxoynulj3rsjzd5i
책 링크
https://books.apple.com/us/book/app-development-with-swift/id1465002990
주신 코드로 이것 저것 수정해봤는데 이해가 안되는 부분이 있어 다시 질문 드립니다!
아래의 사진과 같이 textfield에 값을 입력하고 return을 누르면 해당 셀의 값만 입려되는 것이 아니라 다른 셀에도 값이 자동 입력됩니다 ㅠ 해결할 수 있는 방안이 있을까요??
아, 테이블 뷰를 다이나믹하세 하고 있죠?
셀이 재사용되기 때문인데, 셀 뿌릴 때 데이터가 없으면 지우는(" "를 넣던지) 작업을 해 주세요.
정말 죄송한데 셀을 뿌릴 때 데이터가 없으면 ""표시를 해주었는데 문제가 밑에 사진 처럼 입력하면 다른 칸에는 입력이 안되는데 셀을 내렸다가 다시 올리면 초기화 돼서 데이터가 사라집니다 ㅠ 다이나믹으로 했을 때는 방법이 없는건가요…? ========>
‘놀이공원’ 이라고 입력한 텍스트가 텍스트 입력이 끝나는 순간 임시로라도 저장이 되어야 합니다.
다이나믹 테이블 뷰에서는 모든 셀을 뿌리는 게 우리의 책임이고, 시스템은 셀들을 무작위로 재활용합니다. 화면에서 사라진 셀이 어딘가에 재활용되어 나타나는 거죠. 마찬가지로, 저 놀이동산이라는 셀이 화면에서 사라졌다가 다시 나타나게 된다면 그 내용을 다시 적어주는 것도 우리가 코딩해야 하는 겁니다.