저는 아직 스토리 보드 작업에 익숙하지 않습니다. 이 문제를 디버깅하는 데 2 일을 보냈습니다. -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
이 호출 될 때 segue의 대상보기 컨트롤러가 제대로 작동하지 않는 것 같습니다.segue가 수행 될 때 다음보기 컨트롤러가로드되지 않습니다.
나는 테이블 뷰를 가지고 셀을 탭하면, 그것은 item
가 제대로 prepareForSegue
까지 전달하지만 detailViewController.item
야생 포인터하는 SEGUE
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
VAItem *item = [category itemAtIndex:indexPath.row];
[self performSegueWithIdentifier:@"SegueShowDetail" sender:item];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"SegueShowDetail"]) {
VADetailViewController *detailViewController = segue.destinationViewController;
detailViewController.item = (VAItem*) sender; // <-- THIS ASSIGNMENT DOES NOT WORK
}
}
내 디버깅 프로그램
을 요구한다. 초기화되지 않았으므로=
할당이 적용되지 않습니다.
VADetailViewController의 viewDidLoad
에 중단 점을 넣었고 할당이 수행 된 후에도 item
변수가 여전히 야생 포인터 주소라는 것을 알았습니다.
@interface VADetailViewController : UIViewController
// data
@property (nonatomic, retain) VAItem *item;
@end
항목도 올바르게 합성됩니다.
이 어떤 도움이 많이 레오
는 디버거가 적용되지 않은 할당을 보여줍니다 엑스 코드에서 버그가 수 있도록이 보이지만 실제로는 내 세포 중 하나를 탭하면 전화 번호로 전화를 걸어 때문에 나는 didSelectRowAtIndexPath를 사용하고자 – leo