0

中的视图之间没有显示过渡我写了一个自定义UIStoryboardSegue。在自定义UIStoryboardSegue

我CustomSegue.m文件的唯一代码:

-(void) perform { 
    UIViewController* sourceViewController = (UIViewController *) self.sourceViewController; 
    UIViewController* destinationViewController = (UIViewController *) self.destinationViewController; 

    UIWindow* window = UIApplication.sharedApplication.keyWindow; 
    window.rootViewController = destinationViewController; 
    window.rootViewController = sourceViewController;  

    [UIView transitionWithView: sourceViewController.view.window 
         duration: 0.5 
         options: UIViewAnimationOptionTransitionFlipFromLeft 
         animations: ^{window.rootViewController = destinationViewController;} 
         completion: ^(BOOL finished) {} 
    ]; 
} 

如果我成立了一个故事板所以它只是有两个UIViewControllers,与第一个链接一个按钮,第二,按计划所有作品:从左侧过渡处翻转。

但是:如果我在第一个UIViewController之前放置了一个UINavigationController,那么现在segue会调出第二个视图控制器,而不会从左侧翻页。

这是怎么回事?为什么不使用导航控制器进行过渡?

感谢您的帮助!

(如果你有兴趣,我使用的是自定义的赛格瑞的理由是,这样我可以有后出现的一些介绍页面。我被this Stackoverflow answer激发了主详细视图)。

回答

1

我从来没有解决这个问题,但发现一个简单的解决方法。我从前面移除了导航控制器,但是在segue之后放置了一个导航控制器。然后,我在源屏幕的顶部放置了一个简单的导航栏。 segue还触发了向目标视图控制器添加后退按钮。因此,我的自定义赛格变成了“伪推”赛格。

+0

我已经使用您的示例代码,它的工作原理完美。 – BlueLettuce16 2013-04-16 20:21:36

+0

我很高兴听到它! – 2013-04-23 05:26:10