2017-04-01 88 views
0

TransitionViewForCurrentTransition未设置,演示文稿控制器在演示过程中被解散? (< _UIFullscreenPresentationController: 如何解决它,没有例外的是打印,但上述错误显示的主叫transitionViewForCurrentTransition未设置,演示文稿控制器在演示期间被解雇

-(IBAction)presume:(id)sender 
{ 
     [self returnToRootViewController]; 

} 



- (UIViewController*)topmostViewController 
    { 
     UIViewController* vc = [[[UIApplication sharedApplication] keyWindow] rootViewController]; 
     while(vc.presentedViewController) { 
      vc = vc.presentedViewController; 
     } 
     return vc; 
    } 

    - (void)returnToRootViewController 
    { 
     UIViewController* vc = [self topmostViewController]; 
     while (vc) { 
      if(vc.presentingViewController) { 
       if ([vc isKindOfClass:[CarDetailVC class]]) 
       { 

        @try { 



         [vc dismissViewControllerAnimated:NO completion:^{}]; 

        } @catch (NSException *exception) { 

         NSLog(@"exception=%@",exception); 
        } @finally { 

        } 


       } 

      } 
      vc = vc.presentingViewController; 
     } 



    } 
+1

我看到这里的关系,你刚才的问题1上。你只是想解雇,直到CarDetailVC最高? – danh

+0

是的,我尝试了以上的解决方案,并坚持它 – iphonemaclover

回答

1

让我们先从一个更直接的路径与目标VC(CarDetailVC的实例)

- (UIViewController*)vcWithClass:(Class)klass { 
    UIViewController* vc = [[[UIApplication sharedApplication] keyWindow] rootViewController]; 
    while(![vc.presentedViewController isKindOfClass:klass]) { 
     vc = vc.presentedViewController; 
    } 
    return vc; 
} 

现在,得到它,消除它提出的VC。

- (void)returnToCarVC { 
    CarDetailVC *carVC =(CarDetailVC*) [self vcWithClass:[CarDetailVC self]]; 
    UIViewController *presented = carVC.presentedViewController; 
    [presented dismissViewControllerAnimated:NO completion:^{}]; 
} 
+0

警告在不兼容的指针类型初始化CarDetailVC *与UIViewcontroller类型的表达式 CarDetailVC * carVC = [self vcWithClass:[CarDetailVC self]]; – iphonemaclover

+1

不再靠近开发机器,但那是微不足道的:只是施放结果* carVC =(CarDetailVC)... – danh

+0

感谢丹你不仅仅保存我的一天,而是整个周末。 – iphonemaclover