【问题标题】:ios7 custom transition for navigationcontroller on tabbarcontroller标签栏控制器中导航控制器的ios 7自定义转换
【发布时间】:2014-03-08 11:23:55
【问题描述】:

我的 ViewController 层次结构如下:

UITabbarcontroller
->UINavigationController1
   ->FirstViewController
->UINavigationController2
   ->UIViewController

所以我想在我的 FirstViewController 上推一个 SecondViewController。我需要的自定义转换是让 SecondViewController 淡入,让我的 FirstViewController 淡出。

这是我的代码:

FirstViewController:

- (void)didTapButton:(id)sender
{
    SecondViewController* vc = [[SecondViewController alloc] init];
    [self.navigationController pushViewController:vc animated:YES];
}

UINavigationController1Delegate:

- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC
{
    MyAnimatedTransitioning *transitioning = [[MyAnimatedTransitioning alloc] init];
    return transitioning;
}

MyAnimatedTransitioning:

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
    UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];

    UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];

    [transitionContext.containerView addSubview:toViewController.view];
    toViewController.view.alpha = 0;
    fromViewController.view.alpha = 1.0;

    [UIView animateKeyframesWithDuration:0.25 delay:0 options:0 animations:^{
            fromViewController.view.alpha = 0;
            toViewController.view.alpha = 1.0;

    } completion:^(BOOL finished) {

        fromViewController.view.alpha = 1.0;
        [transitionContext completeTransition:finished];
    }];
}

我使用 push 样式而不是 present 样式,以便导航栏可以很好地交叉淡入淡出。 然而,我面临的问题是我仍然看到底部的标签栏(从标签栏控制器)在过渡期间被推到左边。我需要的是标签栏也能很好地淡出。有人对如何做到这一点有任何好的想法吗?

【问题讨论】:

    标签: ios7 custom-transition


    【解决方案1】:

    我最终使用了当前样式而不是推送样式。对我来说效果很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-01
      • 2017-01-17
      • 1970-01-01
      • 2013-10-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多