我有一个 UITableViewController 和一个故事板推送 segue 从原型单元链接到详细信息页面,一个常规的旧 UIViewController。在故事板中,detail ViewController 有一个标识符,segue 有一个标识符,它与 detail 标识符相同,只是第一个字母是小写的。此外,详细 ViewControllerAttractionDetailViewController
在类下拉列表中选择了一个“自定义类”( )。
不工作。问题是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
条线,它可以工作,但屏幕全黑。
无论如何,我已经阅读了这个并尝试了一些不同的东西,但我仍然受到阻碍。有没有人有什么建议?