2014-03-05 5 views
0

그래서 notificationsViewController에 세관 셀이있는 표가 있습니다. 이 tableView는 데이터를 표시하기 위해 jsonSerialization에서 데이터, 특히 customerID 및 checkinID를로드합니다.어떻게하면 선택한 셀에 따라 사용자 지정 셀의 단추를 프로그래밍 할 수 있습니까? ios

사용자 정의 셀의 이름은 checkInCell.m, .xib 및 .h입니다. 이 사용자 정의 셀에는 체크 인을 수락하고 API 호출로 체크인을 거부하기위한 단추 두 개가 있습니다. (샘플 URL이 : API는 체크인/checkInConfirmation는 CustomerID를 = % @ & MERCHANTID = % & 확인 = % @ & CheckInID = % @ "@ /)

내 질문에 내가 대한 notificationsViewController에서 고객 ID 및 checkinID을 통과 할 방법입니다 선택한 셀을 사용자 정의 셀 버튼에 연결하면 체크 인을 수락하고 거부 할 수 있습니까?

또한 아래 코드가 동일하게 작동한다고 생각하지 않기 때문에 어떻게 테이블의 데이터를 다시로드 할 수 있습니까? 체크 인 셀에서 데이터를 다시로드하려고했습니다.

[self.notificationsTableview reloadData]; 

notificationViewcontroller.notificationsTableView 데이터를 다시로드하려고 시도했지만 뭔가 누락 된 것 같습니다. 도와 주셔서 감사합니다!

답변

0

tableView : cellForRowAtIndexPath : dequeueCell ... 또는 nib 파일을로드하여 셀에 액세스 한 후에는 customerID 및 checkinID와 기타 정보가있는 검색된 셀을 구성해야합니다. 표시됩니다. 일반적으로있는 tableView : 당신이 dequeueCellWithReusableIdentifier을 사용할 수 있습니다 당신은 스토리 보드를 사용하는 경우 "로드 nib 파일에서"부분이 크게 간소화된다

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath 
{ 
    MyCell* cell = [tableView dequeueCellWithReusableIdentifier:@"MyCell"]; 
    if(!cell) 
    { 
     cell = .... some other mechanism of loading cell from your nib file 
    } 

    // configure cell here 
    cell.customerID = ... 
    cell.checkinID = ... 

    return cell; 
} 

주 : forIndexPath이 : 그것은 "항상"는 반환됩니다 cellForRowAtIndexPath 같은 뭔가가 보인다 셀.

단추의 대상과 동작이 nib 파일의 셀 자체로 설정되어 있어야합니다. 이제 버튼을 누르면 사용자 정의 셀의 메소드가 실행되고 위의 구성의 일부로 전달 된 데이터에 액세스 할 수 있습니다.

reloadData에 대한 귀하의 질문에 대한 확신이 없습니다. reloadData는 테이블 뷰 (컨트롤러가 아닌)의 모든 데이터를 델리게이트 및 데이터 소스 (컨트롤러)에서 다시로드합니다. 단일 섹션 또는 행을 다시로드하도록하려면 reloadSections가 필요합니다. .. 그리고 reloadRows ... 변종.

+0

죄송합니다. 더 명확해야합니다. 내가 말한 의미는 checkInCell.m에서 notificationsViewController의 테이블을 다시로드 할 수있는 방법이다. – user3178926

+1

내가 생각할 수있는 유일한 방법은 셀에서 tableview에 대한 참조를 설정하고 cellForRowAtIndexPath에 설정이 있는지 확인하는 것이다. 모든 웹 로직을 테이블 뷰 컨트롤러로 이동하고 버튼 대상을 셀 대신보기 컨트롤러로 설정합니다. –

+0

이 모든 작업에 스토리 보드를 사용하는 경우 두 번째 방법 (보기 컨트롤러에 작업 수행)은 매우 쉽습니다. 나는 그것이 아마 내가 취할 접근법이라고 생각한다. –