所以我对我的应用程序中发生的事情感到非常沮丧。我在界面构建器中设置了一个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的名称
无济于事。
答案 0 :(得分:0)
你有两个问题。首先,最严重的是,你不能从另一个控制器调用segue,因为当你试图这样做时,MainViewController的视图不在窗口的层次结构中,这意味着它不能呈现另一个控制器。其次,使用alloc init创建的MainViewController实例不是您在与segue连接的故事板中创建的实例。你需要重新思考你的结构才能发挥作用。最简单的方法是从MenuViewController连接segue,但这可能不是你想要的结构。