【问题标题】:Segue transition like the iPhone Messages/Settings applications像 iPhone 消息/设置应用程序一样的 Segue 转换
【发布时间】:2014-10-19 08:15:39
【问题描述】:

我想使用自定义 segue 切换视图控制器,其中新控制器来自右侧并覆盖旧控制器 - 就像在 iPhone 标准设置/消息应用程序中一样

我尝试了以下自定义转场:

-(void)perform {

   UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
   UIViewController *destinationController = (UIViewController*)[self destinationViewController];                   

    CATransition* transition = [CATransition animation];
    transition.duration = .25;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
    transition.subtype = kCATransitionFromRight; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom



    [destinationController.navigationController.view.layer addAnimation:transition
                                                                forKey:kCATransition];

    [sourceViewController.navigationController presentViewController:destinationController animated:NO completion:nil];       
}

但动画不是我想要的。旧屏幕消失,新控制器从黑色背景上出现。

kaTransition 的所有类型我都试过了。

我错过了什么,或者有没有其他方法可以执行该动画?

【问题讨论】:

    标签: ios iphone uiviewcontroller segue uistoryboardsegue


    【解决方案1】:

    设置和消息应用程序是使用导航控制器构建的。您在上面描述的动画是默认推送(在 iOS 8 中显示)动画。为了实现这一点,您只需要将根视图控制器放在导航控制器中。然后调用

    self.navigationController pushViewControll:vC animated:Yes];
    

    这是创建下面的动画。如果这不是您想要实现的目标,请向我展示您当前的动画,我会尽力帮助您

    【讨论】:

      猜你喜欢
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多