UINavigationController覆盖从右到左的推送显示黑色背景

时间:2014-06-29 13:14:34

标签: ios objective-c uinavigationcontroller pushviewcontroller

有没有人知道为什么当重叠推或从右到左弹出它显示这个黑色褪色线后面推它自己?

图片附件显示了问题:

enter image description here

这是我用来推动的:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [super pushViewController:viewController animated:NO];
    if (animated)
    {
        CATransition *transition = [CATransition animation];
        transition.duration = TRANSITION_DURATION;
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
        transition.type = kCATransitionPush;
        transition.subtype = kCATransitionFromLeft;
        [self.view.layer addAnimation:transition forKey:nil];
    }
}

这是pop:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
    if (animated)
    {
        CATransition *transition = [CATransition animation];
        transition.duration = TRANSITION_DURATION;
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
        transition.type = kCATransitionPush;
        transition.subtype = kCATransitionFromRight;
        [self.view.layer addAnimation:transition forKey:nil];
    }
    return [super popViewControllerAnimated:NO];
}

2 个答案:

答案 0 :(得分:0)

而不是 [self.view.layer addAnimation:transition forKey:nil] 你应该写 [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];

答案 1 :(得分:0)

我在某些视图控制器中设置了"self.view.translatesAutoresizingMaskIntoConstraints = NO;"。删除此行可修复不规则动画和黑屏问题。