关于UINavigationController跳转的问题

使用UINavigationController做app导航时,一般会用push && pop进行视图切换:

当点击按钮进入某个新视图时,一般使用pushViewController,只有UINavigationController及其子类才拥有该方法。

当返回视图时,一般有3种方法(可能返回多层视图):

1.popViewController,返回上一层视图控制器。

2.popToRootViewController,返回根视图控制器。

3.popToViewController ,跳转到这个视图控制器的中间的某个界面,用这种方式,就需要知道跳转到哪个界面了,获取需要跳转的界面的方式有很多,可以遍历UINavigationController的viewControllers数组,用iskindofclass方法来获取某个控制器对象再来跳转的。

当然,也可以返回相对当前视图控制器上指定几层的视图控制器,具体代码如下:

...
NSInteger index = [self.navigationController.viewControllers indexOfObject:self];
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:index-3]animated:NO];
...
时间: 2024-12-10 14:05:34

关于UINavigationController跳转的问题的相关文章

iOS层级跳转(UINavigationController跳转返回到指定的页面)

[self.navigationController pushViewController:[self.navigationController.viewControllers objectAtIndex:i] animated:YES];i 就是你所要到得页面在总的页面的位置.当页面比较多时,上面那个方法可能不太合适,可以使用以下方法for (UIViewController *controller in self.navigationController.viewControllers) {

iOS应用间相互跳转

一.通过导航控制器UINavigationController跳转 [self.navigationController pushViewController:newController animated:YES]; //跳转到下一页面 [self.navigationController popViewControllerAnimated:YES]; //返回上一页面 [ self .navigationController popToRootViewControllerAnimated: Y

你真的了解UIViewController跳转吗?

一:UIViewController模态跳转 //展示模态视图 - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0); //关闭模态视图 - (void)dismissViewControllerAnimated: (BO

iOS 之 退出app(项目)的几种方法

路漫漫其修远兮,吾将上下而求索.也算是对程序员的一种真实写照了吧. 今天想研究一下iOS中退出项目的方法,说是今天,其实也关注并去了解很久了.只是始终找不到自己认为很好的方法.今天就先把自己了解的列举一下,以后如果还能找到认为更好的,就在补充吧. 这里是我们在项目的AppDelegate中普遍写到的一句代码(至于扩展和丰富,我们暂不去深究): p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Menlo; color: #bdb2a0 }

iOS UI组件汇总

UIButton 这儿有一篇教程,挺全的,可以参考下:http://www.cnblogs.com/chen1987lei/archive/2011/09/09/2172757.html 这个就不多说了,对照官方的文档也可以更多的去学习.插一句题外话,在学这些组件的时候,最令人头疼的不是你搞不定一个组件的某个属性或者方法,而是你压根儿不知道有这个东西.所以在学习这些组件的时候最好的方式还是通过官方文档,虽然已开始可能有些困难,但是硬着头皮去啃,就一定会有悟道的那一天.建议有问题先去看文档,如果实

【iOS开发-21】UINavigationController导航控制器初始化,导航控制器栈的push和pop跳转理解

(1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最以下,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界面,也就是用户看到的界面. (2)我们须要把导航控制器载入到APP中,须要把这个导航控制器设置为window的根视图控制器(都是控制器类,能够赋值),这样就相当于载入到了window里. (3)我们要在栈中新增或者删除一个视图控制器,就须要得到导航控制器,一般在栈中得全部视图控制器都有一个self.

ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a

参考:StackOverflow ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a.在b跳转(push)到c中代码书写如下: UINavigationController *navController = [[self.navigationController retain] autorelease]; [navController popViewControllerAnimated:NO]; View

UINavigationcontroller页面跳转动画

第一种方式: MyViewController *my=[[MyViewController alloc] init]; [self.navigationController pushViewController:my animated:NO]; //因为一个事件循环机制中 CATransition *tran=[CATransition animation]; tran.duration=0.75; [email protected]"cameraIrisHollowOpen"; t

UINavigationController 自定义转场动画(模仿淘宝App跳转)

制作目的 想要自定义系统转场动画速度 放弃不顺畅的 NavigationBar 隐藏消失 干脆直接干掉每个页面的 NavigationBar,在使用 UINavigationController 管理的同时,每个页面的 NavigationBar 都使用自定义的 UIView, 这样既定制程度高又可以在不需要 NavigationBar 的页面无缝对接,包括一些之前 NavigationBar 动画也可以更轻松的利用自定义的 UIView 的适配动画来更灵活的实现 实现功能 可以设置一个自己认为