【发布时间】:2015-01-07 05:01:50
【问题描述】:
对于某些情况,我建议阅读以下内容:
非常相关的问题:"From View Controller" disappears using UIViewControllerContextTransitioning 非常相关的答案:https://stackoverflow.com/a/25901154/751268
我正在尝试实现自定义视图控制器转换,以动画方式使新视图控制器覆盖一半屏幕,同时将呈现视图控制器缩小到 90%(在窗口居中,在呈现视图控制器下方)。
首先,我的问题是viewFromKey: 返回了nil。为了解决这个问题,答案提到:
如果您想为呈现视图控制器的视图设置动画,您应该考虑使用
UIModalPresentationFullscreen样式或继续使用UIModalPresentationCustom并实现您自己的UIPresentationController子类,shouldRemovePresentersView返回 YES。
我这样做了,viewFromKey: 不再返回 nil,但现在呈现的视图控制器完全消失了(考虑到我明确表示应该通过实现 shouldRemovePresentersView,这很有意义)。
我将呈现视图控制器的视图添加到容器视图中,但它仍然被删除。我还应该做些什么来使它正常工作吗?
以下是一些相关代码:
UIView *fromView = [transitionContext viewForKey:UITransitionContextFromViewKey
UIView *toView = [transitionContext viewForKey:UITransitionContextToViewKey];
BOOL show = self.isPresentation;
UIView *menuView = show ? toView : fromView;
UIView *backView = show ? fromView : toView;
UIView *containerView = [transitionContext containerView];
[containerView addSubview:backView];
[containerView addSubview:dimmedView];
[containerView addSubview:menuView];
// Adjust transforms, alpha and perform animations
我认为通过从shouldRemovePresentersView 返回YES 并将其手动添加到containerView,应该可以解决问题,但backView 无论如何都会被删除...
【问题讨论】:
-
我不确定它是否会帮助你,但前几天我刚刚观看了一个 WWDC 会议,涵盖了这种类型的演示文稿,并附有演示。 “查看演示控制器”它是 WWDC 应用程序上提供的“会话 228”。
-
我以前看过,虽然我不记得具体听说过。不过我还是会再看一遍的。
-
您找到解决方案了吗?我正在为此苦苦挣扎,如果它是一个错误,我很惊讶它尚未修复。
标签: ios animation uiviewcontroller