在IOS中关闭模式视图控制器并同时将其发送到其他视图控制器中隔离

时间:2018-11-17 14:37:25

标签: ios objective-c modalviewcontroller

我启动了从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];
}

感谢任何想法。

0 个答案:

没有答案