我正在创建UINavigationController
从一个视图控制器到视图控制器的自定义推送转换(),该视图控制器的视图是透明的,带有模糊。
我希望“来自”视图控制器在新推送的视图控制器下保持可见。
我知道如果以模态方式(使用modalPresentationStyle = UIModalPresentationCustom
)呈现新的视图控制器,我可以达到这种效果,但是有没有办法为导航控制器做到这一点?
我面临的问题是,在转换发生后,视图控制器的视图正在从容器中删除。
我正在创建UINavigationController
从一个视图控制器到视图控制器的自定义推送转换(),该视图控制器的视图是透明的,带有模糊。
我希望“来自”视图控制器在新推送的视图控制器下保持可见。
我知道如果以模态方式(使用modalPresentationStyle = UIModalPresentationCustom
)呈现新的视图控制器,我可以达到这种效果,但是有没有办法为导航控制器做到这一点?
我面临的问题是,在转换发生后,视图控制器的视图正在从容器中删除。
使用新的 iOS 7 过渡 API,您不能将 fromViewController.view 保留在 toViewController.view 下,因为一旦动画完成,containerView 将被私下管理。
然而,你可以做的是这样的......
UIView *containerView = [transitionContext containerView];
UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *snapshotView = [fromViewController.view snapshotViewAfterScreenUpdates:NO];
[toViewController.view addSubview:snapshotView];
[toViewController.view sendSubviewToBack:snapshotView];
我不太确定最后两行的效果如何(将快照发送到后面),但您可以使用自定义 UIViewController 子类来处理快照并确保它位于其余内容的后面。
重读后..我有一种感觉你想要实现某种形式的模式而不是全屏演示......我上面的解决方案需要 toViewController 是全屏的......也许你可以添加一个子视图控制器到实际包含模态内容的 toViewController?