1

我正在尝试通过平滑而漂亮的过渡从viewcontrollerview1 更改为viewcontrollerview2,其中 view1 在一秒钟内被 view2 推到左侧。我对我的 iPhone 应用程序中想要的内容做了一个简单的说明。

在此处输入图像描述--> 在此处输入图像描述--> 在此处输入图像描述-->在此处输入图像描述

我正在使用情节提要并为 iOS 6 及更高版本进行开发。我没有使用segues。目前,我正在使用此代码从 view1 更改为 view2,而 Xcode 中没有任何动画:

SecondViewController *viewTwo = [self.storyboard instantiateViewControllerWithIdentifier:@"View2"];
[self presentViewController:viewTwo animated:NO completion:nil];

我正在寻找可以替换我现有代码的代码。通过推送转换从 view1 更改为 view2 的代码

注意:我没有使用NavigationControllers!只是正常ViewControllers。我宁愿用代码来做到这一点。

编辑:我知道如果我使用导航控制器,这将很容易做到,但问题是我已经完成了故事板的构建,并且我已经使用普通视图控制器构建了所有内容。这产生了我的第二个问题:

有什么办法可以简单地将我UIViewControllers的工作转换为UINavigationControllers. 无需删除我的UIViewController并仅使用UINavController?

回答: 我通过在我的项目中实现导航控制器解决了我的问题。我之前完全误解了导航控制器的整个概念,但我现在已经弄清楚了。所以我的问题解决了!

4

2 回答 2

1

为 view2 设置动画。使用此代码。

-(void)ViewNavigationOnLeftTabs
{
   self.view.frame=CGRectMake(420, 0,self.view.frame.size.width,self.view.frame.size.height);

    [UIView beginAnimations:@"Anim2" context:nil];
    [UIView setAnimationDuration:0.4];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
    [UIView setAnimationDelegate:self];
    self.view.frame=CGRectMake(0, 0,self.view.frame.size.width,self.view.frame.size.height);
    [UIView commitAnimations];
}
-(IBAction)nextView
{
    SecondViewController *sampleV=[[SecondViewController alloc] init];
    [self.view addSubview:sampleV.view];
    [self ViewNavigationOnLeftTabs];
}

在这里,我完全按照您的要求为 secondViewController 添加了过渡效果。您需要在动画期间处理背景视图(view1)。

我在我的应用程序中使用了这个代码,它对我来说工作正常。

于 2013-04-23T17:55:31.327 回答
0

考虑使用容器视图控制器。这是一个教程: http ://www.cocoanetics.com/2012/04/ contains-viewcontrollers/

于 2013-04-23T14:39:25.240 回答