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