2014-12-16 1 views
0

AViewController에서 푸시 후,다시로드있는 UITableViewCell jQuery과 일부 데이터가 포함되어있다

[self.navigationController pushViewController:bViewController animated:YES]

bViewController을 밀어 전화 bViewController에 어떤 일을 수행 한 후, 세포는 aViewController 선택은 일부 정보를 변경합니다 (예 : 업데이트 읽기 수).

내 솔루션 : 매개 변수 (선택한 셀의 indexPath)와 bViewController

  1. 추가 통지 aViewController 에서
  2. 후 알림
  3. 하는 GET 알림 bViewController에서 세포를 다시로드 indexPath의

는 지금은이 문제를 충족 :
대부분의 시간을 거기에 아무런 문제가 없지만, (통지 bViewController에 의해 게시에서 indexPath와 의 셀 aViewContrller 얻을 언젠가 충돌 할 앱에 문제가
입니다) **은 보이지 않습니다.

답변

1

viewDidAppeare 메서드에서 전체 테이블 뷰를 다시로드 할 수 있습니다. bViewController에서 돌아갈 때마다 작동합니다.

또는 당신이 다시로드 할 수 있습니다 염두에 성능을 유지하기 위해 단지 가시 행 : 심지어

[tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows] 
       withRowAnimation:UITableViewRowAnimationNone]; 

또는, 당신은 변화를 만들어 하나 개의 셀을 다시 원하는 셀의 하나 개의 인덱스 경로를 포함 배열 [tableView indexPathsForVisibleRows] 교체 다시로드하십시오.

+0

예, 회원 문제가 발생 했겠습니까? 하단의 셀을 선택한 경우 전체 테이블을 다시로드하면 맨 위로 스크롤되고 선택한 셀은 보이지 않습니다. – Mil0R3

+0

@Geaka 편집 된 답변을 참조하십시오. – Greg

1

먼저 NSNotifications를 사용해서는 안됩니다. 일대 다 관계에서 사용하기위한 것입니다. 귀하의 경우에는 Delegate Pattern을 더 잘 채택하십시오.

또한 화면에 표시되지 않는 테이블 뷰를 업데이트하면 안됩니다. 데이터를 업데이트하는 것이 좋습니다. 다시 볼 때 reloadData를 호출하여 사용자가 볼 수있는 데이터 모델을 변경할 수 있습니다.

+0

네, 그렇습니다 만, viewWillAppear에서 * indexPath *를 * aViewCotroller *로 전달하는 방법에 동의합니까? – Mil0R3

+0

당신은 viewWillAppear에서 할 수 없습니다. 그러나 bViewController의 aViewController 델리게이트를 만들면 팝업 bViewController 바로 전에 aViewController의 일부 속성을 설정할 수 있습니다. 따라서 viewWillAppear가 aViewController에서 호출 될 때이 속성을 체크하고 적절하게 사용하면됩니다. 그건 그렇고 유용합니다 찾을 수 있습니다 isMovingFromParentViewController 속성 viewWillAppear가 팝업의 결과에서 호출하거나 그 자체가 푸시/프레 젠 테이션 결과에서 호출됩니다. –

+0

바로 감사합니다. – Mil0R3