UINavigationController 自定义过渡移除下面的视图

Posted

技术标签:

【中文标题】UINavigationController 自定义过渡移除下面的视图【英文标题】:UINavigationController custom transition removes view underneath 【发布时间】:2014-09-29 11:58:55 【问题描述】:

我正在使用以下方法实现我自己的 UINavigationController 转换:

- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
                              animationControllerForOperation:(UINavigationControllerOperation)operation
                                           fromViewController:(UIViewController *)fromVC
                                             toViewController:(UIViewController *)toVC
    return self;

但是,当转换完成时,推送的 viewController.view 就会消失。我使用

呈现视图
[self.navigationController pushViewController:pushedViewController animated:YES];

当我使用 UINavigationController 推送它们时,有没有办法告诉 TransitionCoordinator 不要删除呈现控制器的视图?我真的需要用所有逻辑实现我自己的 ContainerView 吗?

【问题讨论】:

是的,没有容器视图控制器,总是只有一个视图控制器处于活动状态。 难道没有办法进行过渡:模态就像将模态视图控制器呈现给视图控制器时一样? 所以你想添加带有自定义动画过渡的导航控制器? 是的,我正在这样做,但是在过渡完成后,下面的视图消失了。 你必须使用一个 ContainerViewController 或者只使用一个带有多个视图的 viewController 并且只显示需要的视图。 【参考方案1】:

我完成了自己的 ContainerViewController。现在我可以完全控制视图的生命周期。

【讨论】:

以上是关于UINavigationController 自定义过渡移除下面的视图的主要内容,如果未能解决你的问题,请参考以下文章

关闭 UINavigationController 并呈现另一个 UINavigationController

iOS:如何在现有 UINavigationController 中打开另一个 UINavigationController?

带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller

带有 UINavigationController 的 UITabBarController,在 hidesBottomBarWhenPushed 上隐藏 UINavigationController

在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?

UINavigationController 与 AppDelegate 中的 UISegmentedControl 切换 UINavigationController 的 rootviewcontr