加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Objective-C,Storyboard:instantiateViewControllerWithIdentif

发布时间:2020-12-16 06:47:03 所属栏目:百科 来源:网络整理
导读:我有一个UITableViewController,它有一个storyboard push segue,从原型单元格链接到一个详细页面,一个普通的旧UIViewController.在故事板中,细节ViewController具有标识符,并且segue具有与细节标识符相同的标识符,除了第一个字母是小写的.此外,细节ViewContr
我有一个UITableViewController,它有一个storyboard push segue,从原型单元格链接到一个详细页面,一个普通的旧UIViewController.在故事板中,细节ViewController具有标识符,并且segue具有与细节标识符相同的标识符,除了第一个字母是小写的.此外,细节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线,它可以工作,但屏幕全黑.

无论如何,我已经读过这个并尝试了一些不同的东西,我仍然受到阻碍.有没有人有什么建议?

解决方法

问题是你没有从故事板中实例化你的主视图控制器(UITableViewController),所以它的storyboard属性是零.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读