プロトタイプセルから詳細ページ、通常の古いUIViewControllerにリンクするストーリーボードプッシュセグエを備えたUITableViewControllerがあります。ストーリーボードでは、詳細 ViewController には識別子があり、セグエには最初の文字が小文字であることを除いて詳細識別子と同じ識別子があります。さらに、詳細 ViewController にはAttractionDetailViewController
、クラス プルダウンで選択された「カスタム クラス」( ) があります。
うまくいきません。問題は、instantiateViewControllerWithIdentifier:@"AttractionDetails
が返されることnil
です。
関連コード。まずはprepareForSegue
デバッガが入ったことのない方法。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"attractionDetails"])
{
AttractionDetailViewController *attrDetailVC = [segue destinationViewController];
}
}
代わりに、次のメソッドに入ります。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//AttractionDetailViewController *attrDetailVC = [[AttractionDetailViewController alloc] init];
AttractionDetailViewController *attrDetailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"AttractionDetails"];
NSIndexPath *selIndexPath = [self.tableView indexPathForSelectedRow];
attrDetailVC.theAttraction = [attractions objectAtIndex:indexPath.row];
[self.navigationController pushViewController:attrDetailVC animated:YES];
}
instantiateViewControllerWithIdentifier
返されるのでnil
、もちろん例外がスローされます。本当に興味深いのは、alloc init
代わりに回線を使用すると機能することですが、画面はすべて黒です。
とにかく、私はこれについて読んで、いくつかの異なることを試しましたが、まだ困惑しています. 誰か提案はありますか?