1

我正在围绕新的 iOS 7 自定义转换 API 进行测试,但我在导航控制器案例中遇到了一些问题。我暂时尝试了一个非常基本的测试:

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
    [transitionContext completeTransition:YES];
}

如您所料,这段代码除了在没有动画的情况下完成过渡之外什么都不做。但问题是:如果它在当前/关闭控制器的情况下正常工作,我用 push 和 pop 方法看到的只是黑屏,好像[transitionContext completeTransition:YES]没有工作。

我已经正确设置了所有的委托属性和委托方法,因为这个方法一直被调用(present、dismiss、push、pop)。

有人已经面临这个问题了吗?

4

1 回答 1

3

尝试更多类似的东西,我也遇到了麻烦,这有助于更理解它

- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext
{

    // 1. obtain state from the context
    UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
    CGRect finalFrame = [transitionContext finalFrameForViewController:toViewController];

    // 2. obtain the container view
    UIView *containerView = [transitionContext containerView];

    // 3. set initial state
    CGRect screenBounds = [[UIScreen mainScreen] bounds]; toViewController.view.frame =
    CGRectOffset(finalFrame, 0, screenBounds.size.height); 

    // 4. add the view
    [containerView addSubview:toViewController.view];

    // 5. animate
    NSTimeInterval duration = [self transitionDuration:transitionContext];

    [UIView animateWithDuration:duration animations:^{

        toViewController.view.frame = finalFrame; 

     } completion:^(BOOL finished) {

        // 6. inform the context of completion
        [transitionContext completeTransition:YES];

    }];
}

来源:http ://www.raywenderlich.com/forums/viewtopic.php?f=37&t=8851

于 2013-10-02T20:26:21.987 回答