呈现两个嵌套的模态视图控制器,但只显示最后一个转换

Fed*_*ika 0 iphone modalviewcontroller

我有一个应该是模态的第一个VC(视图控制器),并且它有一个子模态VC,有时应该在第一个VC出现时立即呈现,但有时不会.因此,从根VC我想要呈现第一个VC,并且在第一个VC上呈现子模态VC.但是用户应该只看到子VC模式转换(不是第一个VC).

AFAIK第一个VC只能在viewDidAppear:之后呈现一个模态VC,所以我不知道如何使它成为可能,因为当调用viewDidAppear:时,第一个VC已经对用户可见.

不希望用户一个接一个地看到2个模态转换,而只是最后一个模态转换,即孩子的转换.

任何提示?

Dim*_*ima 5

如果你还没有找到合适的解决方案,我想出了最简单的解决方案.您可以使用UINavigationController来保存您尝试以模态方式显示的2个嵌套视图控制器.

在用于显示模态视图的函数中,您可以执行以下操作:

- (IBAction)showView3
{

    ViewController2 *new2 = [[ViewController2 alloc] init];   
    ViewController3 *new3 = [[ViewController3 alloc] init];

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:new2];
    nav.navigationBarHidden = YES;
    [nav pushViewController:new3 animated:NO];
    [self presentModalViewController:nav animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

然后在ViewController3中的函数解散它将具有:

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

而ViewController2中的那个将具有:

[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一问题是美学,因为默认情况下,从view3到view2的过渡是水平动画,但是从view2到view1的过渡是垂直的.你当然可以改变它,使它们全部水平,或全部垂直,或者你想要的.