首页 > 解决方案 > View Controller 以模式呈现,但 segue 是 Show Segue

问题描述

我的应用程序以MainViewController具有UINavigationController. 如果 ashow segue到另一个控制器,如果新控制器有 aUINavigationController它似乎以模态方式呈现,但如果我删除它,UINavigationController它工作正常。

这是正常的 iOS 行为吗?

如果不再有 UINavigationController,我如何在控制器中导航?

标签: iosswift

解决方案


每次从 MainViewController(有一个 navigationController)切换到一个新的 ViewController 时,新的 ViewController 都会被添加到 MainViewController 的 NavigationController 的堆栈中。

如果您从 MainViewController 转到新的 NavigationController,您将创建一个新的导航堆栈,因此 iOS 将其显示为模态。

要回答您的问题,您只需要 MainViewController 上的 1 个导航控制器,所有后续 segue 都将被推送到该导航控制器的堆栈中。要通过导航堆栈导航回 MainViewController,请查看 navController.popViewController(animated: true)。


推荐阅读