相关疑难解决方法(0)

模态视图控制器 - 如何显示和关闭

关于如何通过显示和解除多个视图控制器解决问题,我在最后一周打破了我的头脑.我创建了一个示例项目并直接从项目中粘贴代码.我有3个视图控制器及其相应的.xib文件.MainViewController,VC1和VC2.我在主视图控制器上有两个按钮.

- (IBAction)VC1Pressed:(UIButton *)sender
{
    VC1 *vc1 = [[VC1 alloc] initWithNibName:@"VC1" bundle:nil];
    [vc1 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentViewController:vc1 animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

这打开VC1没有问题.在VC1中,我有另一个按钮,它应该打开VC2,同时解除VC1.

- (IBAction)buttonPressedFromVC1:(UIButton *)sender
{
    VC2 *vc2 = [[VC2 alloc] initWithNibName:@"VC2" bundle:nil];
    [vc2 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentViewController:vc2 animated:YES completion:nil];
    [self dismissViewControllerAnimated:YES completion:nil];
} // This shows a warning: Attempt to dismiss from view controller <VC1: 0x715e460> while a presentation or dismiss is in progress!


- (IBAction)buttonPressedFromVC2:(UIButton *)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
} // This is going back to VC1. 
Run Code Online (Sandbox Code Playgroud)

我希望它回到主视图控制器,同时VC1应该已经从内存中删除了.只有当我点击主控制器上的VC1按钮时才会显示VC1.

主视图控制器上的另一个按钮也应该能够直接绕过VC1显示VC2,并且当在VC2上单击按钮时应该返回到主控制器.没有长时间运行的代码,循环或任何计时器.只是裸骨调用来查看控制器.

objective-c uiviewcontroller ios presentviewcontroller dismissviewcontroller

81
推荐指数
4
解决办法
16万
查看次数