Ios 如何推动两个VC,但仅展示顶级VC

Ios 如何推动两个VC,但仅展示顶级VC,ios,iphone,swift,uiviewcontroller,Ios,Iphone,Swift,Uiviewcontroller,我想在ios中模拟联系人列表。当点击+按钮添加联系人时,将显示一个新的视图控制器,该控制器为您提供文本字段,用于输入联系人姓名和保存该联系人的其他信息。点击“完成”按钮后,显示的下一个视图控制器似乎已嵌入导航控制器中,该按钮可将您带回联系人列表。我尝试了在这里找到的代码,但它将3视图推到了导航堆栈上 //first attempt var controllers = navigationController?.viewControllers controllers?.append(seco

我想在ios中模拟联系人列表。当点击+按钮添加联系人时,将显示一个新的视图控制器,该控制器为您提供文本字段,用于输入联系人姓名和保存该联系人的其他信息。点击“完成”按钮后,显示的下一个视图控制器似乎已嵌入导航控制器中,该按钮可将您带回联系人列表。我尝试了在这里找到的代码,但它将3视图推到了导航堆栈上

 //first attempt
 var controllers = navigationController?.viewControllers
 controllers?.append(secondVc)
 controllers?.append(thirdVC)
 navigationController?.setViewControllers(controllers!, animated: true)

 //second attempt
 let pushVC = UIViewController()
 let backVC = UIViewController()

 if let navigationController = navigationController {
    navigationController.pushViewController(pushVC, animated: true)
    let stackCount = navigationController.viewControllers.count
    let addIndex = stackCount - 1
    navigationController.viewControllers.insert(backVC, atIndex: addIndex)
 }
我也尝试过其他看起来令人畏缩的组合。以下是我希望它看起来的样子:

这应该可以:

navigationController.pushViewController(secondVc, animated:false)
navigationController.pushViewController(thirdVc, animated:true)

苹果也通过展示一个新窗口来实现这一点,该窗口的表单用于创建一个新联系人

将新窗口设置为
键窗口后,他们将联系人详细信息VC推送到原始窗口上的导航控制器上。这种推送发生在后台,用户无法看到

您可以通过将调试器附加到Contacts应用程序来查看相同内容

这是视图层次结构的屏幕截图。您将能够在
CNContactContentViewController
下面的原始窗口中看到没有视图控制器

当用户点击“完成”时,原始窗口将恢复为
键窗口
,联系人详细信息VC将更新以显示新添加的联系人