自定义Segue查看错误

时间:2015-03-17 23:16:14

标签: ios objective-c swift uiviewcontroller uistoryboardsegue

我有一个FirstViewController和SecondViewController。我在他们之间做了一个“CustomSegue”。

在CustomSegue中执行方法。

- (void)perform
{
    // Add your own animation code here.
    CGFloat height = [UIScreen mainScreen].bounds.size.height;
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    CGFloat offset = 60;

    UIView *sourceView = [self.sourceViewController view];
    UIView *destinationView = [self.destinationViewController view];

    destinationView.frame = CGRectMake(-width, 0, width-offset, height);

    UIWindow *window = [UIApplication sharedApplication].keyWindow;
    [window insertSubview:destinationView aboveSubview:sourceView];


    [UIView animateWithDuration:0.3
                          delay:0.0
                        options: UIViewAnimationOptionCurveEaseInOut
                     animations:^{
                         sourceView.frame = CGRectOffset(sourceView.frame, width-offset, 0);
                         destinationView.frame = CGRectOffset(destinationView.frame, width, 0);

                     }
                     completion:^(BOOL finished){
                         // [[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO];
                     }];
}

Before Segue After Segue

蓝色的是第一个视图控制器,绿色的是第二个视图控制器。我已经从第一个视图控制器的中心按钮启动了segue。

现在我想从第二个视图控制器(Green One)的“按钮”动作中解开segue。我将按钮链接到SecondViewController中的展开操作。但它崩溃了应用程序。显示EXC_BAD_ACCESS。没有任何错误登录调试器。

当我取消注释完成块中的代码时。它将触发展开动作。但是当我发表评论时,它会让应用程序崩溃。但是如果我在完成块中取消注释代码。第二个视图控制器的视图占据整个屏幕,这不是我想要的。

0 个答案:

没有答案