inline date picker in a table view을 구현 중입니다. 그러나, 나는 'didSelectRowAtIndexPath'문제로 어려움을 겪고있다.'didSelectRowAtIndexPath'너무 많은 행을 감지했습니다.
typedef NS_ENUM(NSInteger, SectionOne)
{
SectionOneFirstRow = 0,
SectionOneSecondRow,
TotalSectionOneRows
};
typedef NS_ENUM(NSInteger, SectionTwo) {
SectionTwoFirstRow = 0,
SectionTwoSecondRow,
SectionTwoThirdRow,
SectionTwoFourthRow,
TotalSectionTwoRows
};
typedef NS_ENUM(NSInteger, ThirdSection) {
ThirdSectionFirstRow = 0,
TotalThirdSectionRows
};
typedef NS_ENUM(NSInteger, Section) {
SectionOne = 0,
SectionTwo,
SectionThree,
TotalSections,
TotalComponents,
TotalRows
};
을이어서 'ThirdSectionFirstRow'가 사용자에 의해 선택되면 그래서, 날짜 선택기 것, I '는 didSelectRowAtIndexPath'를 구현한다 아래와 같이
절하고있는 tableView 행은 NS_ENUM를 사용하여 정의 된 표시됩니다. 디버깅을 돕기 위해 NSLog를 사용하고 있습니다.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == ThirdSectionFirstRow && self.datePickerIsShowing == NO){
NSLog(@"Row selected");
[self showDatePickerCell];
} else{
[self hideDatePickerCell];
}
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
는 그러나, 나는 차례의 각 행을 선택하면 내 로깅 결과에 따라,이 메서드를 호출 할 것으로 보인다뿐만 아니라 'ThirdSectionFirstRow가'를 선택하면, 또한 'FirstSectionFirstRow'와 'SecondSectionFirstRow'경우. 아무도 날 논리 내에서 결함을 발견 할 수 있도록이 메서드는 'ThirdSectionFirstRow'가 선택된 경우에만 호출됩니다? 고맙습니다!
정말요? 왜 downvote? – narner
모든 열거 형은 0부터 시작하므로 모두 겹칩니다. 정수일 뿐이며 실행 시간에는 이름이 오래갑니다. 그러나 어쨌든 행 번호별로 셀을 고유하게 식별 할 수는 없습니다. –
나는 당신이 당신의 모든 접근 방식을 다시 생각해야한다고 생각합니다. 이 열거 집합을 사용하여 섹션 및 행을 정의하는 것은 섹션 화 된 테이블 뷰를 처리하는 일반적인 방법이 아닙니다. – rdelmar