2009-08-18 4 views
0

.Indexpath.row 값이 업데이트되지 않음 iphone 응용 프로그램에서

프로그래밍 방식으로 생성 된 tableview에서 선택한 행을 기준으로 무언가를 수행하기 위해 indexPath.row 값 (outselectedrowatindexpath 메서드 외부)을 가져 오려고합니다.

didselectedrowatindexpath 메소드에서 indexpath.row에 액세스해야합니다. 여기서 if/else는 indexpath.row를 기준으로 작업을 정의합니다.

응용 프로그램 및 [메뉴 목록] 테이블보기에 7 개의 카드 이미지가 있습니다. 사용자가 테이블 뷰의 행을 클릭 할 때마다 이미지를 터치해야합니다.

이 코드를 사용하여 IndexPath.row 값을 얻으려고합니다. 문제는 indexPath.row 값이 매번 업데이트되지 않는다는 것입니다. 그것은 단지 오래된 가치를 가지고 있습니다. 이 문제를 해결하는 방법을 sugggest하시기 바랍니다.

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event 
{ 

    NSUInteger nSection =[myTableView numberOfSections]-1 ; 
    NSUInteger nRow = [myTableView numberOfRowsInSection:nSection];  
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:nRow inSection:nSection]; 

    NSLog(@"No of sections in my table view %d",nSection);  
    NSLog(@"No of rows in my table view %d",nRow); 
    NSLog(@"Value of selected indexPath Row %d", [indexPath.row]); 
    NSLog(@"VAlue of Array arrOperationChk %d",[arrOperationChk count]); 

} 
+0

안녕하세요. 이 줄이있는 방법으로 질문을 편집하면 문제를 해결하는 것이 더 쉬울 것이라고 생각합니다. –

답변

1

이 코드는 접촉되는 테이블 (?)에 응답하는 것으로 보입니다. 그런 다음 테이블에 마지막 섹션에있는 행 수를 묻고 그 인덱스 경로를 만듭니다.

테이블은 각 섹션의 행 수를 캐시합니다. 행 수를 변경 한 경우 -insert/deleteRowsAtIndexPaths:withRowAnimation:을 호출하거나 -reloadData을 호출하여 테이블에 알려야합니다. 그렇지 않으면 테이블은 자신이 제공 한 데이터 소스를 다시 쿼리해야한다는 것을 알 수있는 방법이 없습니다.

1

이 코드를 잘못 읽지 않는 한 마지막 섹션의 마지막 셀 +1에 대한 색인 경로를 얻지 못하고 있습니까? 나는 그것이 변하기를 기대하지 않을 것이다. 선택한 셀을 얻고 싶은 경우에

, 당신의 UITableViewController 객체의

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

방법을 사용합니다.

1

다른 사람들이 말한 것처럼 방금 작성한 indexPath 변수가 코드에서 변경됩니다.

또한 [indexPath.row] 구문이 잘못되었습니다. 메서드를 호출하지 않으면 대괄호가 필요 없습니다. Objective-C에서 포인터와 같은 도트 구문을 사용하면 메서드 호출 (암시 적으로 하나 있음)이 아니라 구조체의 가상 인스턴스 변수로 간주됩니다.

큰 그림 목표는 무엇입니까? 우리가 당신이 달성하고자하는 것을/원하는 행동이 무엇인지 이해한다면 아마도 더 유용한 대답이 생길 것입니다.

관련 문제