iOS开发:iOS中的多控制器管理

iOS中的控制器有三种创建方式:

1.通过storyboard创建

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Apply" bundle:nil];
SchemeViewController *schemeVC = [storyboard instantiateViewControllerWithIdentifier:@"SchemeViewController"];

2.指定xib文件来创建

YFViewController *mj = [[YFViewController alloc] initWithNibName:@"YFViewController" bundle:nil];

3.直接创建

YFViewController *mj = [[YFViewController alloc] init];

一个iOS的app很少只由一个控制器组成,除非这个app极其简单,当app中有多个控制器的时候,我们就需要对这些控制器进行管理,有多个view时,可以用一个大的view去管理1个或者多个小view,控制器也是如此,用1个控制器去管理其他多个控制器,比如,用一个控制器A去管理3个控制器B、C、D,控制器A被称为控制器B、C、D的“父控制器”,控制器B、C、D的被称为控制器A的“子控制器”,为了便于管理控制器,iOS提供了2个比较特殊的控制器,UINavigationController和UITabBarController。

•UINavigationController以栈的形式保存子控制器

•使用push方法能将某个控制器压入栈

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

•使用pop方法可以移除控制器

//将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
//回到指定的子控制器
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
//回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

•导航栏的内容由栈顶控制器的navigationItem属性决定,UINavigationItem有以下属性影响着导航栏的内容

//左上角的返回按钮
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
//中间的标题视图
@property(nonatomic,retain) UIView          *titleView;
//中间的标题文字
@property(nonatomic,copy)   NSString        *title;
//左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
UIBarButtonItem *rightBarButtonItem
//右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

控制器里的view加载过程:

控制器的view加载整个生命周期中各个时期调用的方法:

内存警告处理:

时间: 2024-12-28 16:15:33

iOS开发:iOS中的多控制器管理的相关文章

iOS开发项目-02添加子控制器以及项目分层

iOS开发项目-02添加子控制器以及项目分层 一.添加子控制器 1.设置根控制器(自定义) 说明:分析新浪微博应用,观察其整体建构层次.而系统的控制器不能满足项目开发的需求,这里把项目中原有的控制器删除. 自己定义一个TabBarViewController类.让这个类作为window窗口的根控制器. YYAppDelegate.m文件代码: 1 #import "YYAppDelegate.h" 2 #import "YYTabBarViewController.h&quo

iOS开发UINavigation系列四——导航控制器UINavigationController

iOS开发UINavigation系列四--导航控制器UINavigationController 一.引言 在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem和UIToolBar,UINavigationController是将这些控件和UIViewController紧密的结合了起来,使用导航,我们的应用程序层次会更加分明,对controller的管理也更加方便.前几篇博客地址如下: UINavigationBar:http://my.oschina

iOS开发——修改指定文件的内存管理状态

今天项目要上线,在Archive时报错:  ARC forbids explicit message send of 'release' 'release' is unavailable: not available in automatic reference counting mode   项目中有几个第三方库用到MRC,在release时报错.在运行时没有用到这个库所以没有报错(没有确定).于是我改了那几个文件为MRC状态,成功Archive,在ARC改为-fobjc-arc,MRC为-f

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

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

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

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

iOS开发--iOS及Mac开源项目和学习资料

文/零距离仰望星空(简书作者)原文链接:http://www.jianshu.com/p/f6cdbc8192ba著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 原文出处:codecloud UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字

[IOS开发]IOS开发之推送

最近的项目中使用到了推送,第一次搞推送,遇到了不少坑,所以记录下来. 参考:手把手教你做IOS推送 首先是一些基础知识 APNS的推送机制 首先我们看一下苹果官方给出的对iOS推送机制的解释.如下图 Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器. 上图可以分为三个阶段: 第一阶段:应用程序的服务器端把要发送的消息.目的iPhone的标识打包,发给APNS. 第二阶段:APNS在自身的已注册Pu

iOS开发----iOS 8的虚化效果

在iOS 7中,一个重大的改变就是随处可见的虚化,这在通知中心和控制中心表现得尤为抢眼: 然而,当开发人员们着手去将类似的模糊效果增加自己的App的时候,他们会发现有相当严重的障碍. 那时苹果所界定的设备可用范围相当简单,并不强大到足以支持在第三方应用中实现实时模糊. 并声称开发人员们非常可能在App里滥用虚化从而严重影响用户体验. 只是,精明又狡猾的程序猿们非常快的创造了自己基于模糊静态图片方法来破解实时模糊的算法. 大部分解决方式都效果卓越.只是,之后的iOS 8在开发人员工具箱中加入了官方

iOS应用开发 iOS开发 iOS软件定制

ios应用开发入门课程:ios安装工具 要开发一个应用,就必须用到 iOS 软件开发套件(SDK)以及苹果公司的集成式开发环境(IDE)Xcode.要创建一款优秀的 iPhone.iPod touch 和 iPad 应用,Xcode 可以满足你所有 的需要.其内容有源代码编辑器.图形用户界面编辑器以及其他多种功能,从可定制构建到源代码仓库管理等.Xcode 采用单窗口的形式,并将这种形式称为"工作区窗口",你所需要的大 部分数据都在这个工作区窗口里面.熟悉 Xcode 以后,你就能轻松

iOS开发 - iOS发布条款检查表

序号 分类 条款编号 条款 案例 1 功能 2.1 崩溃的程序将会被拒绝 2 2.2 有错误的程序将会被拒绝 点击版本升级无反应/点击版本升级,在线版本和当前版本都是2.0.3 3 2.3 跟开发者宣传不符的程序将会被拒绝 4 2.4 无应用文档或隐藏功能与描述不符的程序将会被拒绝 5 2.5 使用非公开API的程序将会被拒绝 6 2.6 在指定容器范围外读写数据的程序将会被拒绝 7 2.7 以任何方式或形式下载代码的程序将会被拒绝 8 2.8 安装或释放其他可执行代码的程序将会被拒绝 9 2.