ios - 按下另一个 View Controller 时, Root View Controller 的 View 消失

标签 ios objective-c cocoa-touch ios7

我正在尝试在我的 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 似乎消失了,因此在转换运行时,模态呈现背后的背景变成黑色。

这张图说明了问题: enter image description here

过渡完成后,洋红色 View 按预期可见,但在过渡发生时绿色背景消失。

最佳答案

由于您使用的是 iOS 7,您应该使用新的自定义转换协议(protocol)来处理这个问题,而不是自己为图层设置动画。问题在于导航 Controller 会在您调用 push 后立即更新 View 模型,因为您告诉它不要设置动画,从屏幕上删除之前的 View ——可能还有 View 层次结构。

关于ios - 按下另一个 View Controller 时, Root View Controller 的 View 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22036580/

相关文章:

ios - 是否可以同时填充两个数组?

ios - 从 iOS 打印的分步教程?

iphone - 存储和检索数据

ios - 表格 View 单元格中的 ImageView 切断标签(自动布局)

iphone - 基于indexPath.row启动UITableViewCells的问题

ios - 如何正确使用标识符属性?

ios - 从 AppDelegate 向 ViewController 发送通知

ios - 如何以编程方式将 UISegmentedControl 添加到容器 View

ios - 如何在 XCode 中复制文件?

iphone - 存档可变数组 - doesNotRecognizeSelector 异常