手动操作导航控制器的子视图控制器的数组

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!

你可能希望直接操作与特定导航控制器相关的子视图控制器的数组.

你可以使用UINavigationController的viewControllers属性修改其相关联的子视图控制器:

- (void) goBack{
/* Get the current array of View Controllers */
NSArray *currentControllers = self.navigationController.viewControllers;
        /* Create a mutable array out of this array */
        NSMutableArray *newControllers = [NSMutableArray
                                          arrayWithArray:currentControllers];
        /* Remove the last object from the array */
        [newControllers removeLastObject];
        /* Assign this array to the Navigation Controller */
        self.navigationController.viewControllers = newControllers;
    }

你可以任何视图控制器中调用该方法去弹出继承体系中最后(最后push入的,猫猪注)的导航控制器的子视图控制器.

UINavigationController类的实例都持有一个数组对象,其中每一个元素皆为一个UIViewController对象.在获取到该数组之后,你可以以你希望的任何方式手动操作该数组.比如说,你可以删除该继承体系数组中的一个视图控制器.

但是直接操作这个UIViewController的数组并不会呈现给用户动画效果,如果你希望操作动画化,可以使用UINavigationController类的setViewControllers:animated:方法,代码如下:

- (void) goBack{
/* Get the current array of View Controllers */
NSArray *currentControllers = self.navigationController.viewControllers;
/* Create a mutable array out of this array */
        NSMutableArray *newControllers = [NSMutableArray
                                          arrayWithArray:currentControllers];
        /* Remove the last object from the array */
        [newControllers removeLastObject];
        /* Assign this array to the Navigation Controller with animation */
        [self.navigationController setViewControllers:newControllers
                                             animated:YES];
}
时间: 2024-08-31 22:07:37

手动操作导航控制器的子视图控制器的数组的相关文章

从C#到Objective-C,循序渐进学习苹果开发(6)--视图控制器的使用

本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCode进行IOS程序的开发,介绍其中视图控制器的理解和使用过程. 1.视图控制器(导航视图控制器和选项卡视图控制器) 我们知道,在.net里面开发Winform程序或者Webform程序,我们只需要绘制一个个界面,然后在后台添加相应的处理,如果设计比较好的话,把业务逻辑.数据库访问等不同的层包装起来,本

《Swift iOS应用开发实战》——3.4了解视图控制器

3.4了解视图控制器 通过Calculator项目我们可以体会到,每个视图控制器都会负责管理iOS应用程序中的一个独立视图,响应用户在该视图中的操作.但是不仅如此,在需要的时候,它还要负责与其他视图控制器的切换以及在控制器间的数据传递.比如iOS中的通讯录程序,当用户点击某个联系人(单元格)的时候,当前控制器A要负责切换到另外一个控制器B(负责显示联系人详细信息的视图控制器). 3.4.1视图控制器简介到目前为止,你应该明白视图控制器的作用了.简单来说,它就像是iOS应用程序中所实现的每个功能的

ios开发-如何改变一个视图控制器中除一个控件变灰

问题描述 如何改变一个视图控制器中除一个控件变灰 就像图片一样,当选择器触发时,其余控件色变成灰色怎么实现?求大神开发-如何改变一个视图控制器中除一个控件变灰-ios 添加子视图控制器">

ios开发-视图控制器切换的问题

问题描述 视图控制器切换的问题 怎么不使用storyboard,而只使用代码实现视图控制器的切换 求大神带 解决方案 视图控制器的切换视图控制器切换动画UIViewController的切换(视图控制器切换) 解决方案二: 参考:http://www.codeios.com/thread-14150-1-1.html

UIView如何管理它的子视图

UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraphicsGetCurrentContext,就可以画画了.而setNeedsLayout会默认调用layoutSubViews,就可以处理子视图中的一些数据.宗上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据. UIView提供了很多建立和管理视图的方法.

ios-怎么在每个视图控制器上创建导航控制器

问题描述 怎么在每个视图控制器上创建导航控制器 我在分栏控制器上加了4个视图控制器,只能在根视图控制器上加导航控制器,分栏控制器上的每个视图控制器都加上导航控制器,怎么做. 解决方案 每一个viewController都得有一个UINavigationController 就行了,类似我下面的写法就行了 HomePageVC * HomeVC = [[HomePageVC alloc] init]; UINavigationController * HomeNav = [[UINavigatio

ios-iOS 求大神告诉我现在切换视图控制器或视图的方式都有哪几种?

问题描述 iOS 求大神告诉我现在切换视图控制器或视图的方式都有哪几种? 如题 ,现在切换视图控制器或视图的方式都有哪几种方式,现在做项目需要用到,最好是对内存管理比较好的,知道的麻烦告知下,感激不尽... 解决方案 http://blog.csdn.net/itianyi/article/details/8514208 解决方案二: 现在项目都是ARC了吧,只要注意一下强指针的使用就好了,监听内存警告,在出现内存警告的时候移除一些暂时用不到的东西,释放一下. 最常用的是导航控制器方式(PUSH

iOS 视图控制器转场详解(上)

推荐序 这是一篇长文,详细讲解了视图控制器转场的方方面面,配有详细的示意图和代码,为了使得文章在微信公众号中易于阅读,seedante 辛苦将大量长篇代码用截图的方式呈现,另外作者也在 Github 上附上了完整的示例代码,满满的诚意之作. 作者 seedante 是一个低调人士,只愿意透露他的 GitHub:https://github.com/seedante .感谢作者授权微信独家代理,本文的所有打赏归 seedante 所有. 前言 本文并非华丽的转场动画教程,相反,文中的转场动画效果都

IOS开发之视图和视图控制器

        视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西.在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多.在UIKit框架中都有一个UIWindow来容纳我们的View.应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类.UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示.窗口是用来显示视图的,下面我们将会结