1

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

但是,我已经实现了以下代码来完成该操作,当我从上述类中推入单独的视图控制器时,我收到了一个奇怪的延迟动画动画。任何想法为什么发生这种情况?我已经上传了一个简短的视频显示,我试图来形容,希望这将使它更容易理解错误动画:http://d.pr/v/Q754

//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]; 
} 

回答

0

你推视图控制器具有nil背景颜色,这默认情况下在iOS 7上清除。只需将其设置为白色或其他任何,它会工作。

相关问题