최근에 내 앱에서이 문제를 발견했으며 어떻게/왜 발생했는지 파악할 수 없어 예외적 인 것처럼 보입니다. 언제 예측할 수 있습니다. 내 UITableView
하위 클래스로로드 오전 정의 UITableViewCell
있다. 나는 항상 tableView
에 5 개의 세포 만 가지고 있으며, 프로토 타입이 아닌 정적이다. 내가 가지고있는 문제는 언젠가 내가 나의 셀 중 하나를 선택했다는 모달 뷰를 무시하고, 다른 셀은 버그가 발생한다는 것입니다. 내가 셀을 만지 •맞춤형 셀 선택 문제에서 모달보기 컨트롤러가 깨졌습니다 - iOS 7
와 내가 셀 • 계속을 눌러 SEGUE이
을 수행 셀을 터치 한 후 약 10 + 초 • 계획로 SEGUE을 수행 여기에 무슨이다 아무 일도 일어나지 않지만보기의 다른 곳을 터치하면 단색이 수행됩니다.
"Here"게시 된 문제와 매우 유사합니다.
여기 내 코드입니다 : 당신이 (송신자가이 경우 자체입니다) 셀에서 또는의 ViewController에서 스토리 보드에 SEGUE 경우
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//[super tableView:tableView didSelectRowAtIndexPath:indexPath];
//self.selectedObject = [self.objects objectAtIndex:indexPath.row];
NSLog(@"I DID SELECT path %ld", (long)indexPath.row);
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
if(indexPath.row == 0 && self.matchOneSetNum <= 3)
{
self.whereFrom = 1;
[self performSegueWithIdentifier:@"enterScoresSegue" sender:self];
}
if(indexPath.row == 1 && self.matchTwoSetNum <= 3)
{
self.whereFrom = 2;
[self performSegueWithIdentifier:@"enterScoresSegue" sender:self];
}
if(indexPath.row == 2 && self.matchThreeSetNum <= 3)
{
self.whereFrom = 3;
[self performSegueWithIdentifier:@"enterScoresSegue" sender:self];
}
if(indexPath.row == 3 && self.matchFourSetNum <= 3)
{
self.whereFrom = 4;
[self performSegueWithIdentifier:@"enterScoresSegue" sender:self];
}
if(indexPath.row == 4 && self.matchFiveSetNum <= 3)
{
self.whereFrom = 5;
[self performSegueWithIdentifier:@"enterScoresSegue" sender:self];
}
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"enterScoresSegue"])
{
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
UINavigationController *newView = (UINavigationController *)[segue destinationViewController];
EnterScoresViewController *enter = newView.topViewController;
enter.myDelegate = self;
enter.otherTeam = self.otherTeam;
if(self.whereFrom == 1)
{
enter.match = self.matchOne;
enter.setNumber = self.matchOneSetNum;
enter.matchOnePlayer = self.playerName;
}
if(self.whereFrom == 2)
{
enter.match = self.matchTwo;
enter.setNumber = self.matchTwoSetNum;
enter.matchTwoPlayer = self.playerNameTwo;
}
if(self.whereFrom == 3)
{
enter.match = self.matchThree;
enter.setNumber = self.matchThreeSetNum;
enter.matchThreePlayer = self.playerNameThree;
}
if(self.whereFrom == 4)
{
enter.match = self.matchFour;
enter.setNumber = self.matchFourSetNum;
enter.matchFourPlayers = self.playerStringsFour;
}
if(self.whereFrom == 5)
{
enter.match = self.matchFive;
enter.setNumber = self.matchFiveSetNum;
enter.matchFivePlayers = self.playerStringsFive;
}
}
}
문제를 해결하는 데 유용한 코드가 있습니까? –
죄송합니다. – Jacob
앞으로는 [질문하는 방법] (http://stackoverflow.com/help/how-to-ask)에서 멋진 질문을하는 방법에 대한 팁을 참조하십시오. –