Ios UINavigationController抖动推送转换

Ios UINavigationController抖动推送转换,ios,objective-c,uinavigationcontroller,uiviewanimationtransition,Ios,Objective C,Uinavigationcontroller,Uiviewanimationtransition,我正在使用最新的iOS 7动画转换协议来创建一个淡入淡出的转换,一个推一个视图控制器;类PSSpaceDetailViewController的成员。但是,对于所有其他推送转换,我希望使用UINavigationController通常提供的默认推送动画 然而,在实现了下面的代码之后,当我从前面提到的类中推一个单独的视图控制器时,我收到了一个奇怪的延迟抖动动画。知道为什么会这样吗?我上传了一段简短的视频,展示了我试图描述的动画,希望能够更容易理解这个bug: 您正在推送的视图控制器的背景颜色为零

我正在使用最新的iOS 7动画转换协议来创建一个淡入淡出的转换,一个推一个视图控制器;类PSSpaceDetailViewController的成员。但是,对于所有其他推送转换,我希望使用UINavigationController通常提供的默认推送动画

然而,在实现了下面的代码之后,当我从前面提到的类中推一个单独的视图控制器时,我收到了一个奇怪的延迟抖动动画。知道为什么会这样吗?我上传了一段简短的视频,展示了我试图描述的动画,希望能够更容易理解这个bug:


您正在推送的视图控制器的背景颜色为零,在iOS 7上默认为清除。只要把它设为白色或其他什么,它就会工作

//PSAnimatngNavigationControllerDelegate.m

+ (instancetype) sharedInstance {
    static PSAnimatingNavigationControllerDelegate *shared;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shared = [[PSAnimatingNavigationControllerDelegate alloc] init];
    });
    return shared;
}

- (PSFadeAnimator *) animator {
    if (!_animator) {
        _animator = [[PSFadeAnimator alloc] init];
    }
    return _animator;
}

- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController animationControllerForOperation:(UINavigationControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC
{
    if (operation == UINavigationControllerOperationPush && [toVC isKindOfClass:[PSSpaceDetailViewController class]]) {
        return self.animator;
    }
    return nil;
}

// App Delegate.m

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:notesViewController];
[navigationController setDelegate:[PSAnimatingNavigationControllerDelegate sharedInstance]];

PSSpaceDetailViewController.m

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    PSMatchDetailViewController *matchDetail = [[PSMatchDetailViewController alloc] initWithOriginalSpace:self.space andPotentialLead:self.datasource[indexPath.section][indexPath.row]];
    [self.navigationController pushViewController:matchDetail animated:YES];
}