首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >poptorootviewcontroller和dismiss to mainViewController

poptorootviewcontroller和dismiss to mainViewController
EN

Stack Overflow用户
提问于 2015-04-01 20:40:13
回答 3查看 807关注 0票数 0

我是IOS新手。我的问题是,我有一些视图控制器,如NavigationController,mainVC,VC1,VC2,VC3,CameraVC。在cameraVC中,我有一个具有操作doneClicked的done按钮。这些都是在NavigationController中推送的视图控制器。在导航控制器中显示VC1,而不是推送。doneClicked函数实现了poptorootviewcontroller。当我点击done按钮时,它会让我进入VC1,而不是mainVC。有没有什么方法可以让我弹出所有的视图控制器到VC1,然后自动将VC1关闭到mainVC。

EN

回答 3

Stack Overflow用户

发布于 2015-04-01 20:46:23

将MainVC设置为根视图控制器,并在done按钮的IBAction中使用代码弹出到MainVC。

代码语言:javascript
复制
[self.navigationController popToRootViewControllerAnimated:YES];

希望能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-04-01 20:59:32

弹出视图控制器

self.navigationController popToRootViewControllerAnimated:是;

并取消显示的视图控制器

self dismissViewControllerAnimated:无完成:无

票数 0
EN

Stack Overflow用户

发布于 2015-04-01 20:59:44

代码语言:javascript
复制
[self.navigationController setViewControllers:@[mainVC]];

我认为这段代码将适用于您的情况。iOS开发人员库:

用指定的项替换当前由导航控制器管理的视图控制器。

代码语言:javascript
复制
- (void)setViewControllers:(NSArray *)viewControllers
              animated:(BOOL)animated

source

您必须在dissmiss当前视图控制器之后执行此操作。使用委托

现在让我们假设您的导航堆栈是空的,根目录是mainVC。如果你想展示VC1,那没问题,那就展示吧。但是你应该给mainVC一个委派,让它知道在批评VC1之后会发生什么。例如,您呈现来自mainVC的VC1。并且您想在dissmiss VC1之后推送VC2。这在mainVC中是可以的,所以在这个方法中有一个委托

代码语言:javascript
复制
[self.navigationController pushViewController:VC2];

显示视图不会影响您的导航堆栈。它不在您的堆栈中。所以每次你从一个控制器中移除它的时候,你应该给这个控制器一个委托,来决定在移除之后会发生什么。

试试看。希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29391095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档