2013-09-03 1 views
2

나는 불행하게도 경우UITableView의 행을 선택해도 상관 없습니까?

작동하지 않는 것 같다,는 "jQuery과"내가 선택한 행을하는 데 필요한 코드를 작성했습니다,

을 선택한 행을 처리하고 그에 따라 데이터를 사용하는 것을 시도하고있다가 내가 선택하지 않음,

NSIndexPath *path = [tableViewDoctorName indexPathForSelectedRow]; 
int rowSelected = path.row; 

rowSelected의 값은 0입니다.

하지만 행을 선택하면, 다시 내가 테이블에서 하나 개의 행이 0

, 나는이 문제가 않습니다 확실하지 않다?

어떻게 "UITableView"에서 선택된 행을 정확하게 결정할 수 있습니까?

+1

시작. 그것이 없다면 선택된 셀이 없습니다. 하지만'int x = path.row'를 사용하고 경로가 nil이면 x는 0이됩니다. –

답변

1

jQuery과 대리자를 설정하고이 방법을 구현 :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
      int rowSelected = indexPath.row; 
}   
+0

또한이 방법을 시도했지만 두 경우 모두 0입니다. – erdemgc

+0

@erdemgc UITableView에 몇 개의 행이 있습니까? –

+0

당신이 그것을 얻을 것이다 내 대답을 확인하십시오. –

1

indexPath.row 시작 첫 번째 행에 대한 0과를, 그리고 당신은 그때는 항상 0 반환 한 행이;

그러나 선택한 행의 데이터를 가져 오려면 UITableView 메서드를 위임하십시오. 당신이 당신의있는 tableView의 문제에 얼마나 많은 행 물론

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // here you can get directly indexPath.row so you can get required data; 
} 
2

: 만 1이있는 경우는, 다음의 indexpath (0, 0)이이 경우에 (선택) 할 수있는 유일한 사람입니다.

선택한 행은 일반적으로 파란색으로 강조 표시되어 있으므로이 파란색 선택 영역이 화면 상에 머물러 있지 않게하려면 tableView 대리인의 다른 속성에 저장해야 할 수 있습니다. 당신의 UITableViewDelegate에서 일반적으로

: 함수 외부에서

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // deselect the row, to avoid the 'blue' selection to stay on-screen 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

    // save your own copy of 'last' selected indexPath 
    self.mySavedIndexPath = indexPath;  
} 
1
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    _selectedIndexPath = indexPath; 
} 

이이 행을 선택하려면 사용하여 indexPath이 전무 아니라고 확인하여

NSIndexPath *indexPath = [NSIndexPath indexPathForRow: _selectedIndexPath.row inSection:0]; 
int rowSelected = indexPath.row; 
관련 문제