我的根导航有一个StoreDetailsController,我在ShoppingBagNavigationController中的StoreDetailsController中。它们可以无限存在。要返回到根导航时该怎么办?
- (void)goBagVC{
UINavigationController *shoppingBag = [[UIStoryboard storyboardWithName:@"ShoppingBag" bundle:nil] instantiateViewControllerWithIdentifier:@"ShoppingBagNavigationController"];
ShoppingBagViewController *myshopVC = shoppingBag.viewControllers[0];
[myshopVC passDetailProduct:self.productDetailModel.productID];
[self presentViewController:shoppingBag animated:YES completion:nil];}
- (void)goRootVC{
[self.navigationController.tabBarController setSelectedIndex:0];
[self.navigationController popToRootViewControllerAnimated:YES];}
我想在goRootVC函数中成为root Controller。谢谢
答案 0 :(得分:0)
由于ShoppingBagViewController
将是您展示后的最高视图,因此在按钮dismiss(animated: true, completion: nil)
中按下按钮添加呼叫ShoppingBagViewController
将会关闭该屏幕。
关闭其他屏幕后,StoreDetailsController
应该可见。
答案 1 :(得分:0)
在我看来,您似乎在混淆模态演示并将其推入导航堆栈。您的goBagVC方法会在当前视图控制器的顶部以模块化方式呈现一个导航控制器。如果要将视图控制器推入导航堆栈,则需要从导航控制器开始并调用seg:off
答案 2 :(得分:0)
您必须在导航控制器中搜索该视图控制器,然后弹出该控制器。
快速
let vc = self.navigationController!.viewControllers.filter { $0 is StoreDetailsController }.first!
self.navigationController!.popToViewController(vc, animated: true)