문제점 : 특정 uitableviewcell
을 선택할 때 새 DetailViewController
을 열어야합니다. didSelectRowAtIndexPath
에 코드를 작성했지만 셀을 클릭하면 런타임 오류가 표시됩니다.선택시 UITableViewCell 선택 New DetailViewController로 이동
[self.navigationController presentModalViewController:jacket animated:YES ];
으로 전화를 걸었지만보기 컨트롤러가 열리지 않습니다.
내가 시도한 또 다른 방법은 [self.navigationController performSegueWithIdentifier:@"JacketDetails" sender:self ];
입니다.
세그린에 지정된 식별자가 있습니다.이 속성은 검사기에서 "JacketDetails"가 있지만 여기에서는 yime 오류가 발생합니다. Segue를 UITABLEVIEWCELL
에서 VIEWCONTROLLER
으로 연결했습니다.
행을 클릭하면 JacketDetailViewController
열려 있어야합니다. 클래스 JacketDetailViewController
을 만들고 New ViewController
에 대해이 클래스를 inspector에서 설정했습니다.
왜 나는 segue가 보이지 않는지 모르겠다. 관리자의 식별자를 부여하고 tableviewcell
에서 새 View Controller로 올바르게 연결했다.
JacketDetailViewController
자켓 목록을 표시하고 싶습니다. 현재 비어 있습니다. ViewController
.
내 코드는 다음과 같습니다. 솔루션을 제안 해 주시겠습니까? 나는이 분야에서 스스로 가르치는 초보자이다. 나는 사소한 실수를 범했을지도 모른다. 나는 나의 문제를 봤고 그것을 해결하려고 노력했지만 나는 며칠 동안 여기서 붙어있다. 콘솔에서
TshirtDetailViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
[tableView deselectRowAtIndexPath:indexPath animated:YES ];
JacketDetailController *jacket =[[JacketDetailController alloc]init];
NSInteger index =indexPath.row;
NSLog(@"Row:%d",index);
NSString *titleString = [[NSString alloc] initWithFormat:[jackets objectAtIndex:indexPath.row]];
NSLog(@"%@",titleString);
jacket.title=titleString;
// ...
// Pass the selected object to the new view controller.
[self.navigationController performSegueWithIdentifier:@"JacketDetails" sender:self ];
// [self.navigationController presentModalViewController:jacket animated:YES ];
}
@end
오류 :이 선보기를 엽니 다
2013-01-07 10:52:21.020 KidsShopee[617:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<UINavigationController: 0x6a5fac0>) has no segue with identifier 'JacketDetails''
*** First throw call stack:
(0x13bf052 0x1550d0a 0xdd24b 0x3e8e 0xa671d 0xa6952 0x92e86d 0x1393966 0x1393407 0x12f67c0 0x12f5db4 0x12f5ccb 0x12a8879 0x12a893e 0x16a9b 0x1b08 0x1a65 0x1)
terminate called throwing an exception(gdb)
에 오신 것을 환영과
를 교체합니다. 나는 당신에게 상당한 노력을 보여주는 확실한 질문이 무엇인지에 경의를 표합니다. 코드 블록, 인라인 코드 및 비 코드 블록의 형식을 지정하는 방법을 더 잘 이해하기 위해 내가 작성한 편집 내용을 검토하십시오. 거의 모든 것이 코드 블록 안에있었습니다. 현재의 편집 된 양식에서 나는 당신의 질문을 upvote 수 있습니다 (그리고 않았다). 그것이 전에 downvote를 정말로 가치가 있었던 방법. 영어는 걱정하지 마세요. 대문자, 구두점 및 서식에 대한 일반 규칙을 따르십시오. 이것은 독자가 이해하고 downvotes를 탈출하는 데 도움이됩니다! – ErikE
칭찬에 감사드립니다. 그리고 당신은 내가 거의 25 번 같은 질문을 편집 해 보았고 그것을 정확하게 내 수준으로 설명하려고 노력했음을 알았습니다. – krish