CustomSegue

- (void)perform {
    UIViewController *src = self.sourceViewController;
    UIViewController *dest = self.destinationViewController;
    CGRect f = src.view.frame;
    CGRect originSoourceRect = src.view.frame;
    f.origin.y = f.size.height;
    [UIView animateWithDuration:0.3 animations:^{
        src.view.frame = f;
        
    } completion:^(BOOL finished){
        src.view.alpha = 0;
        dest.view.frame = f;
        dest.view.alpha = 0;
        [[src.view superview] addSubview:dest.view];
        [UIView animateWithDuration:0.3 animations:^{
            dest.view.frame = originSoourceRect;
            dest.view.alpha = 1;
        }completion:^(BOOL finished){
            src.view.alpha = 1;
            [src.navigationController pushViewController:dest animated:NO];
        }];
    }];
}

你可能感兴趣的:(CustomSegue)