我启动了从VC1嵌入到导航控制器中的模态视图控制器VCM。
模态VC具有一个可转到另一个视图控制器VC2的按钮。
如果用户按下按钮转到VC2,则我需要同时关闭模式,并将发送从VC1更改为VC2。 (重要的是消除模式以摆脱它,所以我的堆栈上没有VC。)
这是VC2按钮附带的模式中的操作方法。
- (IBAction)VC2ButtonPressed:(id)sender {
[self dismissViewControllerAnimated:true completion:nil];
//Above line works fine
[VC1 performSegueWithIdentifier:@"showVC2" sender:VC1];//No known class method error
}
我可以毫无问题地解散模态(第一行),但不知道如何同时选择VC2。 VC1中有一个名为“ showVC2”的情节提要,以说明其价值。我目前在发送VC中没有任何相关的类方法。我应该创建一个特殊的类方法吗?或如何在启动模式的VC中调用方法。
编辑:
我也尝试过:
[self.presentingViewController performSegueWithIdentifier:@"showVC2" sender:self];
这可以编译,但给出运行时错误(),没有标识为“ showVC2”的提示
我认为这是因为VC2嵌入在tabbarcontroller中。
编辑2:
我尝试按照@Oscar的建议将代码放入完成处理程序中,但是当代码被触发时,VC2无法加载
[self dismissViewControllerAnimated:YES completion:^{
[self gotoVC2];
}];
新方法
-(void)gotoVC2 {
LogDebug(@"gotoVC2 called");//DOES log to console
UIStoryboard *storyBoard = self.storyboard;
IDFeedVC *VC2 =
[storyBoard instantiateViewControllerWithIdentifier:@"vc2"];
[self presentViewController:VC2 animated:YES completion: nil];
}
感谢任何想法。