Receiver(<mainviewcontroller:0x8e34580 =“”>)没有带标识符的segue&#39; showCompleted&#39; iOS 7 </mainviewcontroller:>

时间:2014-04-24 21:36:36

标签: ios ios7 uiviewcontroller segue

所以我对我的应用程序中发生的事情感到非常沮丧。我在界面构建器中设置了一个segue,我以编程方式调用它。当我用类中的方法调用segue时,它工作得很好。我有(在MainViewController.m中)

-(void)presentCompletedFormsView{
    [self performSegueWithIdentifier:@"showCompleted"];
}

当我从这个VC课程中调用它时,这完全没问题。但是当我从另一个viewcontroller调用此方法时(我的菜单viewController出现在这个主要的一个上面),我得到了错误

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<MainViewController: 0x8e34580>) has no segue with identifier 'showCompleted''

这是我从其他班级调用它的方式:

-(void)presentController{
    MainViewController *vc = [[MainViewController alloc] init];
    [vc presentCompletedFormsView];
}

修改

我已经尝试过明显的解决方案:    - 清洁和建筑    - 重置数据    - 更改segue的名称

无济于事。

1 个答案:

答案 0 :(得分:0)

你有两个问题。首先,最严重的是,你不能从另一个控制器调用segue,因为当你试图这样做时,MainViewController的视图不在窗口的层次结构中,这意味着它不能呈现另一个控制器。其次,使用alloc init创建的MainViewController实例不是您在与segue连接的故事板中创建的实例。你需要重新思考你的结构才能发挥作用。最简单的方法是从MenuViewController连接segue,但这可能不是你想要的结构。