美文网首页
iOS-控制器pop跳转

iOS-控制器pop跳转

作者: 李丘 | 来源:发表于2017-03-15 10:50 被阅读0次

导语

导航控制器的viewControllers是一个栈,当push一个新控制器的时候,这个控制器就会进栈,且位于栈顶,而window每次显示的都是处于栈顶的控制器,而当pop的时候,被pop的控制器会从栈中移除,出栈,新的控制器就会成为栈顶的控制器,从而被window显示。根据这个原理,我们就可以在pop跳转的时候做一些改变。

pop一个新控制器

一般来说,我们的做法都是通过push来进入一个新的控制器,pop来返回上一个控制器,但是如果有需要通过pop来进入一个新的控制器的话,也可以做到。

navigationController的viewcontrollers是一个数组,当我们需要pop进入一个新的控制器的时候,只需要在当前的控制器的前面插入一个新的控制器即可。当pop的时候,当前控制器出栈,新控制器成为栈顶被显示。

代码如下:

InsertViewController *insertVC = [[InsertViewController alloc] init];

NSMutableArray *arrM = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];

[arrM insertObject:insertVC atIndex:self.navigationController.viewControllers.count - 1];

self.navigationController.viewControllers = arrM.copy;

[self.navigationController popViewControllerAnimated:YES];

pop到根控制器

[self.navigationController popToRootViewControllerAnimated:YES];

pop到指定控制器

UIViewController *vc = self.navigationController.viewControllers[1];

[self.navigationController popToViewController:vc animated:YES];

相关文章

  • iOS-控制器pop跳转

    导语 导航控制器的viewControllers是一个栈,当push一个新控制器的时候,这个控制器就会进栈,且位于...

  • iOS pop与push

    1.pop出栈,push压栈, push能跳转到任意制定的页面控制器,pop是返回到任意制定的控制器,但是其前提是...

  • POP PUSH

    1.pop出栈,push压栈, push能跳转到任意制定的页面控制器,pop是返回到已经创建的控制器,出栈即意味着...

  • iOS笔记-导航控制器(Nav)的10条经验

    1.导航控制器永远显示的是栈顶控制器的view 2.导航控制器中做界面之间的跳转必须取到导航控制器 3.调用pop...

  • 汽场小知识

    1.汽场跳转回去指定界面 在绑定密码页面 pop回去 在相隔几个控制器的情况,A跳转B,B->C,C->D,最后从...

  • 导航控制器及其跳转方式小结

    在平时开发中,利用导航控制器进行push和pop完成界面的跳转,是最常见的一种方式。今天就对导航控制器的一些知识盲...

  • OpenUrl

    iOS-使用URL Schemes,进行应用之间跳转iOS - JLRoutes路由跳转官方文档JLRoutes ...

  • 关于生命周期

    从A控制器 push B控制器 从B控制器 pop 回 A控制器

  • swift10分钟实现炫酷的导航控制器跳转动画

    导航控制器的工作原理 push操作 pop操作 如何自定义导航栏跳转 是这样的,UIKIt是通过代理模式来自定义导...

  • 标签视图控制器

    iOS-个人整理15 - 标签视图控制器--UITabBarController iOS UITabBarCont...

网友评论

      本文标题:iOS-控制器pop跳转

      本文链接:https://www.haomeiwen.com/subject/blclnttx.html