gpt4 book ai didi

objective-c - iOS 7 自定义推送转换到透明 View Controller ,避免 View Controller 的 View 在下方可见

转载 作者:太空狗 更新时间:2023-10-30 04:02:02 24 4
gpt4 key购买 nike

我正在创建从一个 View Controller 到另一个 View Controller 的自定义推送转换 (UINavigationController) View Controller 的 View 透明且模糊。

我希望“来自” View Controller 在新推送的 View Controller 下方保持可见。

我知道如果以模态方式呈现新的 View Controller (使用 modalPresentationStyle = UIModalPresentationCustom)我可以实现这种效果,但是有没有办法为导航 Controller 做到这一点?

我面临的问题是,从 View Controller 的 View 在转换发生后从容器中移除。

最佳答案

使用新的 iOS 7 转换 API,您不能将 fromViewController.view 保留在 toViewController.view 下,因为一旦动画完成,containerView 将被私有(private)管理。

但是你可以做的是这样的......

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 是全屏......也许你可以添加一个 subview Controller 到实际包含模态内容的 toViewController?

关于objective-c - iOS 7 自定义推送转换到透明 View Controller ,避免 View Controller 的 View 在下方可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21880614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com