我正在尝试在我的 UINavigationController
的 Root View Controller 上推送一个 UIViewController
。我正在使用自定义转换来执行此操作,以使其看起来像模态演示。
CATransition* trans = [CATransition animation];
trans.type = kCATransitionMoveIn;
trans.subtype = kCATransitionFromTop;
trans.duration = 0.4f;
trans.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.navigationController.view.layer addAnimation:trans forKey:nil];
[self.navigationController pushViewController:vc animated:NO];
我的问题是,当我按下时,self
View Controller 的 View 似乎消失了,因此在转换运行时,模态呈现背后的背景变成黑色。
这张图说明了问题:
过渡完成后,洋红色 View 按预期可见,但在过渡发生时绿色背景消失。
最佳答案
由于您使用的是 iOS 7,您应该使用新的自定义转换协议(protocol)来处理这个问题,而不是自己为图层设置动画。问题在于导航 Controller 会在您调用 push 后立即更新 View 模型,因为您告诉它不要设置动画,从屏幕上删除之前的 View ——可能还有 View 层次结构。
关于ios - 按下另一个 View Controller 时, Root View Controller 的 View 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22036580/