简体   繁体   中英

IOS: custom transition for a viewController

I have this code in my app to do a transition for a viewcontroller

SecondViewController *second = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
    [self.view addSubview:second.view];
    [second.view setFrame:CGRectMake(320, 0, 320, 480)];

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.40]; //the double represents seconds
    [UIView setAnimationDelegate:self];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [second.view setFrame:CGRectMake(0, 0, 320, 480)];
    [UIView commitAnimations];

and it work fine; but inside second view controller I have this code to disappear this viewcontroller

[UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.40]; //the double represents seconds
    [UIView setAnimationDelegate:self];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [self.view setFrame:CGRectMake(320, 0, 320, 480)];
    [UIView commitAnimations];

it work fine, but what's the way to release it, where can I release this second that I alloc when I call it?? if I write [self.view removeFromSuperView]?? is it released??

You need to remove it from the superView then release the SecondViewController that you allocated in your code.

SecondViewController *second = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

So since you are owning this object you need to release it. So somewhere after hiding the second view, and removing it from superView, you need to release it...

[second release];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM