我是IOS的新手。 我的问题是,我有一些视图控制器作为NavigationController,mainVC,VC1,VC2,VC3,CameraVC。在cameraVC我有一个完成的按钮行动doneClicked。这些全部视图控制器都在NavigationController中推送。呈现VC1,而不是推入导航控制器。 doneClicked函数实现poptorootviewcontroller。当我点击完成按钮,它让我到VC1但不是主VC。有什么办法,所以我可以弹出所有视图控制器到VC1,并在这之后自动关闭VC1到mainVC。poptorootviewcontroller并解雇mainViewController
0
A
回答
0
将您的MainVC设置为根视图控制器,并在IBAction of done按钮中使用代码弹出到MainVC。
[self.navigationController popToRootViewControllerAnimated:YES];
希望它有帮助。
0
为了弹出视图控制器
[self.navigationController popToRootViewControllerAnimated:YES];
并关闭呈现视图控制器
[自dismissViewControllerAnimated:NO完成:零]
0
[self.navigationController setViewControllers:@[mainVC]];
我觉得这个代码将在你的情况下工作。 iOS开发者库:
将当前由导航控制器管理的视图控制器替换为指定的项目。
- (void)setViewControllers:(NSArray *)viewControllers
animated:(BOOL)animated
必须dissmiss现在视图控制器后,做到这一点。使用代理
现在让我们认为您的导航堆栈是空的,并且您的根目录是mainVC。你想呈现VC1就可以了。但是你应该给一个委托给mainVC的人,解散VC1后会发生什么。例如,您从mainVC中呈现VC1。并且你想在推出VC1之后推VC2。没关系,只是在mainVC中有一个委托,所以在这个方法中
[self.navigationController pushViewController:VC2];
目前的意见并不影响你的导航堆栈。它不在你的堆栈中。所以每次你从控制器中撤销它,你都应该委派一个控制器来解决解散后会发生的事情。
试试吧。 希望它有帮助。
相关问题
- 1. popToRootViewController
- 2. 解雇MediaplayerViewController后不能解雇VIewController
- 3. 事件并没有被解雇
- 4. ScopeGuard解雇
- 5. 解雇popOver
- 6. ConvertBack不解雇
- 7. MBProgressHUD解雇
- 8. UIPopoverController解雇
- 9. ipad - 解雇UIPopoverController
- 10. 解雇uiwebview
- 11. UITest popToRootViewController
- 12. 解雇问题asp.net
- 13. onFinishRender不被解雇
- 14. OpenLayers.Popup closeBoxCallback未解雇
- 15. Swift-tvOS解雇UIAlertController
- 16. a4j:actionparam assignTo未解雇
- 17. MFMailComposeViewController不会解雇
- 18. UIAlertView中不解雇
- 19. PopUpWindow解雇问题
- 20. Drools规则解雇
- 21. 如何解雇AlertViewController
- 22. 问题解雇UIAlertView
- 23. popToRootViewController不与UINavigationControllers
- 24. 使用popToRootViewController
- 25. popToRootViewController - 通知
- 26. pushViewController和popToRootViewController
- 27. UINavigationController与popToRootViewController问题
- 28. 怪异错误popToRootViewController
- 29. process.existed()没有被解雇
- 30. 如何解雇返回键
添加视图控制器堆栈,并弹出到第零索引 – Chandru 2015-04-01 12:53:29