CATransition到其他视图工作,崩溃时转换回来 [英] CATransition to other view works, crashes on transition back

查看:165
本文介绍了CATransition到其他视图工作,崩溃时转换回来的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用这个代码从当前视图转换到另一个,它的工作原理。问题是,当我尝试返回到当前视图的应用程序崩溃。

I am using this code to transition from the current view to another and it works. The problem is that when I try to return to the current view the app crashes.

这是我使用的代码从当前视图传递到新的: / p>

This is the code I use to pass from the current view to the new one:

CATransition *transition = [CATransition animation];

transition.duration = 0.75;
// using the ease in/out timing function
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

transition.type = kCATransitionReveal;

transition.subtype = kCATransitionFromRight;

transition.delegate = self;

// Next add it to the containerView's layer. This will perform the transition based on how we change its contents.
[self.view.layer addAnimation:transition forKey:nil];

// Here we hide view1, and show view2, which will cause Core Animation to animate view1 away and view2 in.

self.view.hidden = YES;

MyMessages *info1=[[MyMessages alloc] initWithNibName:@"MyMessages" bundle:nil];
[self.view addSubview:info1.view];

info1.view.hidden = NO;
self.view.hidden = NO;

我尝试使用此代码返回:

I try to return using this code:

CATransition *transition = [CATransition animation];

transition.duration = 0.75;
// using the ease in/out timing function
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

transition.type = kCATransitionReveal;

transition.subtype = kCATransitionFromLeft;

transition.delegate = self;

// Next add it to the containerView's layer. This will perform the transition based on how we change its contents.
[self.view.layer addAnimation:transition forKey:nil];

// Here we hide view1, and show view2, which will cause Core Animation to animate view1 away and view2 in.
self.view.hidden = YES;

FirstViewController *info1=[[  FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[self.view addSubview:info1.view];

info1.view.hidden = NO;
self.view.hidden = NO;


推荐答案

UITabBarController 和新 UIView UIView 。代码转到存在于 UITabBarController的 UIView 之一中的按钮的 IBAction

This is the code that needed to make the transition between an UIView of a UITabBarController and a new UIView. The code goes to a button's IBAction which exists in one of the UIViews of the UITabBarController.

//initialize the app delegate

AppDelegate appDelegate = (AppDelegate) [[UIApplication sharedApplication] delegate];

// get the view that's currently showing

UIView *currentView = self.view;

// get the the underlying UIWindow, or the view containing the current view view

UIView *theWindow = [currentView superview];
// remove the current view and replace with mynewView1
[currentView removeFromSuperview];

//assign the new view to the viewcontroller1. It is the first uiviewcontroller of the uitabbarcontroller. My uitabbarcontroller consists of five uiviewcontrollers in my project. The button exists in the first viewcontroller1 this is why i am assigning the new view to the viewcontroller1. If the button was pressed from the secondviewcontroller (viewcontroller2) of my uitabbarcontroller i will assign the new view to the secondviewcontroller (viewcontroller2) and so on...
appDelegate.viewController1=[[MyMessages alloc] initWithNibName:@"MyMessages" bundle:nil];

//add it to the window
[theWindow addSubview:appDelegate.viewController1.view];

// set up an animation for the transition between the views
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

[[theWindow layer] addAnimation:animation forKey:@"SwitchToView1"];

感谢您的帮助!我一直在尝试这个超过一天来实现它。我希望它会帮助有同样问题的人。

Thanks for you help! I have been trying this for more than a day to achieve it. I hope it will help someone with the same problem.

这篇关于CATransition到其他视图工作,崩溃时转换回来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆