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上清除。只需將其設置爲白色或其他任何,它會工作。

相關問題