关闭模式视图控制器与自定义segue

问题描述:

我已经创建了两个自定义segue文件,并在两个,我已经覆盖了perform方法。但是,似乎只有在呈现新的UIViewController时,自定义搜索才起作用,而反过来,不会生成动画就会解散源UIViewController关闭模式视图控制器与自定义segue

反向定制赛格瑞:

- (void)perform { 
UIViewController *sourceViewController = self.sourceViewController; 
    UIViewController *sourceTabBarController = sourceViewController.parentViewController.parentViewController; 
    UIViewController *destinationViewController = self.destinationViewController; 
    UIGraphicsBeginImageContext(destinationViewController.view.bounds.size); 
     [destinationViewController.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
     UIImage *destinationViewControllerImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 

    UIImageView *destinationViewControllerImageView = [[UIImageView alloc] initWithImage:destinationViewControllerImage]; 
    destinationViewControllerImageView.userInteractionEnabled = YES; 
    destinationViewControllerImageView.frame = CGRectMake(0.0f, 0.0f, CGRectGetWidth(destinationViewController.view.frame), CGRectGetHeight(destinationViewController.view.frame)); 

[destinationViewController.view insertSubview:destinationViewControllerImageView atIndex:1]; 

// Add animations 
    [UIView animateWithDuration:0.4f 
          delay:0.0f 
         options:UIViewAnimationOptionCurveEaseIn 
        animations:^{ 
         destinationViewControllerImageView.center = CGPointMake(-CGRectGetWidth(destinationViewControllerImageView.frame)/2, -(CGRectGetHeight(destinationViewControllerImageView.frame)/2)); 
        } 
        completion:nil]; 

    [sourceViewController dismissViewControllerAnimated:NO completion:nil]; 
} 

提前感谢!

Segues添加视图控制器的新版本。当我开始时,我有一些有趣的使用segues解雇视图控制器的问题。

您应该在视图控制器中使用自定义动画块,而不是编写自定义动画块。

+0

好吧,我担心可能是这种情况!你会怎么做呢?你会在IBAction中添加解雇代码,那么视图中的uiview动画代码块将会消失吗?因为我厌倦了,动画不运行就被解雇了。顺便说一句,我从故事板中删除了反转段。 – 2012-08-14 15:58:44

+0

你应该做的是让'IBAction'调用视图控制器中的一个方法来解除。在动画的完成块中,关闭控制器(因此动画在控制器被解除之前完成)。 – Dustin 2012-08-14 16:00:41

+0

好了,我有一个'IBAction'容纳'[UIView的animateWithDuration:0.5 延迟:0 选项:UIViewAnimationOptionCurveEaseIn 动画:^ { //我的动画 } 完成:^(BOOL完成){ [自dismissViewControllerAnimated:NO完成:无]; }];'但是,动画不会发生,那么视图控制器就被立即解散。我误解了你的评论吗? – 2012-08-14 16:14:46