2017-09-24 1 views
0

나는 tableview 셀을 클릭하면 다른 tableview가로드되고 api 호출이 생성되는 응용 프로그램이 있습니다. API의 응답을 기반으로 테이블보기 목록이로드되고 두 번째 tableview의 특정 항목을 선택하면 tableview 텍스트 레이블 외에 표시된 선택란이 있고 동시에 데이터베이스가 선택된 값인 으로 업데이트됩니다. 첫 번째 tableview로 돌아 가면 선택한 항목이있는 레이블이 표시됩니다.배열 및 선택된 값 목록을 비교하고 인덱스를 기반으로 tableview 셀에 표시

내가 처음 클릭 한 tableview 셀을 클릭하면 api가 호출되고 api의 결과를 데이터베이스의 활성 목록과 비교해야하며 해당 특정 셀을 선택된 상태로 유지해야합니다.

첫 번째 tableview에서 선택한 항목이 있고 해당 특정 셀을 클릭하면 api 결과가 tableview를 다시로드하고 각 셀에 대한 선택 사항이 표시되지 않습니다. 예상대로 선택된 셀이 자신의 경우에도 선택으로

for selectedDict in (appDelegate?.selectedCategoryFilterArray)! { 
       let selectedUuid = selectedDict.categoryUuid 
       print("selectedUuid\(selectedUuid)") 

       for allDict in self.requestedFiltersArray!{ 

        let allUuid = allDict.objectForKey("uuid") as? String 
        if selectedUuid == allUuid { 
         cell.imgSelected.image = UIImage(named: "radio_selected") 
         continue 
        }else{ 
         cell.imgSelected.image = UIImage(named: "radio") 

        } 
        print("allUuid\(allUuid)") 
       } 
      } 

이 작동, 어떤 세포가 표시되지 않습니다되지 않습니다

다음

는 코드입니다.

답변

1

어디에서이 코드를 삽입 했습니까?

나는 당신이 성취하려고 시도한 것으로부터, 내가 제안 할 접근법을 여기에 제시했다.

API 호출 결과에 따라로드 된 두 번째 tableView에 대해 uuid라는 String 속성을 사용자 지정 UITableViewCell 클래스에 추가합니다.

두 번째 tableView를 채우려면 cellForRowAtIndexPath를 호출하고 각 셀을 사용자 지정 UITableViewCell로 인스턴스화하고 indexPath.row를 사용하여 결과 배열을 기반으로 uuid 속성을 적절한 값으로 설정합니다.

설정 한 다음에는 조건에 맞는 for 루프를 실행하여 셀의 uuid 속성 값과 AppDelegate의 selectedUuid 값을 일치시킨 다음 로직별로 이미지를 설정할 수 있습니다.

거친 구현 :

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cellIdentifier") as! YourCustomTableViewCell 

     let allDict = self.requestedFiltersArray[indexPath.row] 
     let allUuid = allDict.objectForKey("uuid") as? String 

     cell.uuid = allUuid 

     for selectedDict in (appDelegate?.selectedCategoryFilterArray)! { 
      let selectedUuid = selectedDict.categoryUuid 
      if selectedUuid = cell.uuid { 
       cell.imageSelected.image = UIImage(named: "radio_selected") 
      } else { 
       cell.imageSelected.image = UIImage(named: "radio") 
      } 
     } 


    } 
+0

감사 이봐, 작은 변화했다. if 조건 안에 휴식을 추가해야합니다. – Rani

관련 문제