Ios 如何创建一个模块转换,以推送一个视图控制器并在前面滑动另一个视图控制器?

Ios 如何创建一个模块转换,以推送一个视图控制器并在前面滑动另一个视图控制器?,ios,objective-c,uinavigationcontroller,uinavigationbar,Ios,Objective C,Uinavigationcontroller,Uinavigationbar,抱歉,如果我的标题很糟糕,我正在尝试创建一个像ios中的邮件一样弹出的导航控制器,如下所示: 一个简单的解决方案(因此它可能不是最正确的编程方法,我不确定),可以在父视图控制器内设置ViewController(看起来像mail的一个和他后面的一个),并根据需要管理其视图 我很快就做了一件事: 两个ViewController都正常工作,当然,您可以禁用底部的一个,并在图像中设置灰色视图 代码: 在底部ViewController中,使用要推送的ViewController创建新的Naviga

抱歉,如果我的标题很糟糕,我正在尝试创建一个像ios中的邮件一样弹出的导航控制器,如下所示:

一个简单的解决方案(因此它可能不是最正确的编程方法,我不确定),可以在父视图控制器内设置ViewController(看起来像mail的一个和他后面的一个),并根据需要管理其视图

我很快就做了一件事:

两个ViewController都正常工作,当然,您可以禁用底部的一个,并在图像中设置灰色视图

代码:

在底部ViewController中,使用要推送的ViewController创建新的NavigationController,然后将其添加为第一个ViewController的子项:

nav = [[UINavigationController alloc] initWithRootViewController:[VcWithNavViewController new]];
[nav.view setFrame:CGRectMake(self.view.bounds.origin.x, self.view.bounds.size.height, self.view.bounds.size.width, 500)];
[self addChildViewController:nav];
[self.view addSubview:nav.view];
[nav didMoveToParentViewController:self];
然后,在适当的时候,只需在屏幕上设置该孩子的视图动画:

- (void) popViewController {
[UIView animateWithDuration:2 delay:5 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    [nav.view setFrame:CGRectMake(0, 200, self.view.bounds.size.width, 500)];
} completion:nil];

}

您能更详细地说明上次推送的情况吗?如果我错了,请纠正我,但你想先推一个VC,然后弹出另一个VC iOS邮件,如ish?检查下面的答案,推送只是一个简单的推送,然后在推送的VC中创建较小的一个,并将其设置为子级,简单。