在我的应用程序中,我有复杂的导航。
我有购物详情。它是标签栏控制器的视图控制器。
当我从购物详细信息视图控制器中选择任何商店名称时,它将弹出到嵌入导航控制器中的购物清单查看控制器。
从购物清单 查看控制器中选择编辑按钮时。它将弹出到另一个视图控制器ADD屏幕。它也嵌入了导航控制器
当我从添加屏幕点击保存时。它将转到购物清单查看控制器
当我点击购物清单查看控制器中的完成按钮时。我必须导航到标签栏控制器的购物详细信息视图控制器。
请提供输入。如何遍历标签栏控制器?
我试过下面的代码。它将导航到StoreDetails View Controller。不显示Tab Bar Items
let storeDetails = self.storyboard?.instantiateViewController(withIdentifier: "StoreDetailsController") as! StoreDetailsController
storeDetails.managedContext = managedContext
storeDetails.coreData = coreData
storeDetails.back = true
self.navigationController?.pushViewController(storeDetails, animated: false)
答案 0 :(得分:0)
如果你做self.navigationController?.dismiss(animated: true)
,你应该回到导航控制器中嵌入第一个导航控制器之前的viewController,我认为是Shipping Details
(你选择任何商店名称的那个) “)。
答案 1 :(得分:0)
从我可以告诉你的尝试将你发起的控制器推送到堆栈而不是弹回它。从你的帖子中获取整个图片有点令人困惑,你能分享故事板的那部分作为截图吗?如果您不熟悉共享故事板,您是否至少可以提供一个图表?感谢。
编辑:
为了弹回你的控制器你可以使用这样的东西:
for controller in (self.navigationController?.viewControllers)! {
if let vc = controller as? StoreDetailsController {
self.navigationController?.popToViewController(vc, animated: true)
}
}
但我真的不能告诉你,你是否至少不能分享你的控制器如何安排以及它们嵌入的位置图。
答案 2 :(得分:0)
因为它是互联的。 pushToViewController或popTOViewController或dismiss不起作用。所以我使用了放松。
StoreDetailsController: 我在StoreDetailsController中有以下代码
@IBAction func unwindToVC1(segue:UIStoryboardSegue) {
print("Test")
}
在我的ShoppingListViewController中,我已退出Done bar按钮退出。
@IBAction func done(_ sender: UIBarButtonItem) {
performSegue(withIdentifier: "unwindSegueToVC1", sender: self)
}
您可以按照以下链接进行展开
https://medium.com/@mimicatcodes/create-unwind-segues-in-swift-3-8793f7d23c6f