我是IOS新手。我的问题是,我有一些视图控制器,如NavigationController,mainVC,VC1,VC2,VC3,CameraVC。在cameraVC中,我有一个具有操作doneClicked的done按钮。这些都是在NavigationController中推送的视图控制器。在导航控制器中显示VC1,而不是推送。doneClicked函数实现了poptorootviewcontroller。当我点击done按钮时,它会让我进入VC1,而不是mainVC。有没有什么方法可以让我弹出所有的视图控制器到VC1,然后自动将VC1关闭到mainVC。
发布于 2015-04-01 20:46:23
将MainVC设置为根视图控制器,并在done按钮的IBAction中使用代码弹出到MainVC。
[self.navigationController popToRootViewControllerAnimated:YES];希望能有所帮助。
发布于 2015-04-01 20:59:32
弹出视图控制器
self.navigationController popToRootViewControllerAnimated:是;
并取消显示的视图控制器
self dismissViewControllerAnimated:无完成:无
发布于 2015-04-01 20:59:44
[self.navigationController setViewControllers:@[mainVC]];我认为这段代码将适用于您的情况。iOS开发人员库:
用指定的项替换当前由导航控制器管理的视图控制器。
- (void)setViewControllers:(NSArray *)viewControllers
animated:(BOOL)animated您必须在dissmiss当前视图控制器之后执行此操作。使用委托
现在让我们假设您的导航堆栈是空的,根目录是mainVC。如果你想展示VC1,那没问题,那就展示吧。但是你应该给mainVC一个委派,让它知道在批评VC1之后会发生什么。例如,您呈现来自mainVC的VC1。并且您想在dissmiss VC1之后推送VC2。这在mainVC中是可以的,所以在这个方法中有一个委托
[self.navigationController pushViewController:VC2];显示视图不会影响您的导航堆栈。它不在您的堆栈中。所以每次你从一个控制器中移除它的时候,你应该给这个控制器一个委托,来决定在移除之后会发生什么。
试试看。希望能有所帮助。
https://stackoverflow.com/questions/29391095
复制相似问题