2017-03-08 7 views
1

하나의 tableview에 모든 셀 내에있는 모든 데이터를 가져오고 싶습니다. 이것은 꽤 긴 목록입니다.모든 TextView에 숨겨진 뷰를 포함한 모든 TableView 셀의 데이터 가져 오기

보기에서 숨겨진 것들을 포함한 모든 것을 검색하는 방법에 대한 접근법을 찾고 있는데,보기가 재사용된다는 것을 알고 있습니다. 저는 여러분 중 일부가 전에이 문제를 경험했을 것입니다. 이것에 대한 접근 방법은 무엇입니까?

나는

하자 세포 =의 self.tableView.visibleCells

다음

모든 세포에 루핑 및 배열에 각각의 데이터를 저장을 시도했지만의 일부가 아닌 자들을 얻기에 효과가 없습니다 보기 또는 숨겨진. 이 문제를 극복 할 수있는 방법이 있습니까?

+0

빨리 스크롤하면 테이블보기에 UITextField의 텍스트가 올바르게 표시됩니까? –

+0

@TheMachSystem 네 그렇습니다 –

+0

https://stackoverflow.com/questions/28431086/getest-data-from-each-uitableview-cells-swift 그냥이 링크로 이동 –

답변

3

cellForRowAtIndexPath에서 각 셀의 내용을 테이블에 알려줍니다. 그렇다면 왜 돌아 서서 테이블에 각각의 셀에 무엇이 있는지 물어보십시오. 사용자가 첫 번째 셀에 "Hello"를 넣은 다음 테이블을 스크롤하여 첫 번째 셀을 보이지 않게 밀고 사용자가 맨 위로 스크롤하면 "Hello"를 다시 넣으라는 메시지가 나타납니다 첫 번째 세포. 테이블이 아닌 데이터 소스를 소유하고 있습니다.

데이터 소스가 필요합니다. 그것은 처음에는 "비어있을"수 있고, 빈 문자열 배열이면 원하는 배열 일 수 있습니다 (배열의 각 인덱스는 예를 들어 테이블 행에 매핑 될 수 있습니다). 그러나 사용자가 셀의 텍스트 필드와 상호 작용할 때 입력 한 텍스트로 해당 데이터 소스를 업데이트해야합니다.

cellForRowAtIndex 메소드의 소스로 해당 데이터 소스를 사용해야합니다. 이렇게하면 테이블에서 셀을 요청할 때 셀을 채우는 것을 처리 할 수 ​​있으며 사용자가 완료되면 모든 데이터를 알 수 있습니다.

1

텍스트 필드를 편집 할 때 사용자가 키를 누를 때마다 모델을 업데이트하지 않는 이유는 무엇입니까? 해당 셀 하위 클래스에 대한 프로토콜을 만들고보기 컨트롤러를 각 셀의 대리자로 만들 수 있습니다. 셀을 입력하는 동안 화면에 머물러있는 한 (그렇지 않은 경우 이상한 동작이 발생 함) 셀은 뷰 컨트롤러 나 다른 새로운 값을 알려주는 메시지를 보낼 수 있습니다. 저장. 전체 목록이 필요할 때 모든 항목이 이미 저장되어 있으므로 테이블 뷰와 상호 작용할 필요가 없습니다.

+0

나는 당신이 무슨 뜻인지 알지 못합니다. . 이 샘플 스 니펫을 지정할 수 있습니까? –