码迷,mamicode.com
首页 > 其他好文 > 详细

Objective - C学习笔记:控制器的管理

时间:2015-03-31 23:47:15      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

1. 如何创建一个控制器

1.1. 控制器常见的创建方式有以下几种

//1.1.1:通过storyboard创建

//1.1.2:
直接创建 YHViewController *viewController = [[YHViewController alloc] init]; //1.1.3:指定xib文件来创建 YHViewController *viewController= [[YHViewController alloc] initWithNibName:@"YHViewController" bundle:nil];

 

2. 通过storyboard创建控制器


//2.1:
先加载storyboard文件(TestStoryBoard是storyboard的文件名) UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"TestStoryBoard" bundle:nil]; //2.2:接着初始化storyboard中的控制器
//2.2.1:初始化“初始控制器”(箭头所指的控制器) YHViewController *viewController = [storyboard instantiateInitialViewController]; //2.2.2:通过一个标识初始化对应的控制器 YHViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"yh"];

技术分享

 

3: 控制器view的延迟加载

3.1: 控制器的view是延迟加载的:用到时再加载

3.2: 可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载

3.3: 控制器的view加载完毕就会调用viewDidLoad方法

 

4: 多控制器

4.1: 一个iOS的app很少只由一个控制器组成,除非这个app极其简单

4.2: 当app中有多个控制器的时候,我们就需要对这些控制器进行管理

4.3: 有多个view时,可以用一个大的view去管理1个或者多个小view

4.4: 控制器也是如此,用1个控制器去管理其他多个控制器

4.5: 比如,用一个控制器A去管理3个控制器B、C、D

4.5.1: 控制器A被称为控制器B、C、D的“父控制器”

4.5.2: 控制器B、C、D的被称为控制器A的“子控制器”

4.6: 为了便于管理控制器,iOS提供了2个比较特殊的控制器

4.6.1: UINavigationController: 可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用

4.6.2: UITabBarController

 

5: UINavigationController的简单使用

 

5.1: UINavigationController的使用步骤

5.1.1: 初始化UINavigationController

5.1.2: 设置UIWindow的rootViewController为UINavigationController

5.1.3: 根据具体情况,通过push方法添加对应个数的子控制器

 

5.2: UINavigationController的子控制器

//5.2.1: UINavigationController以栈的形式保存子控制器
@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;

//5.2.2:使用push方法能将某个控制器压入栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

//5.2.3:使用pop方法可以移除控制器
//将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
//回到指定的子控制器
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
//回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

 

6: 如何修改导航栏的内容

//6.1: 导航栏的内容由栈顶控制器的navigationItem属性决定

//6.2: UINavigationItem有以下属性影响着导航栏的内容
//左上角的返回按钮
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
//中间的标题视图
@property(nonatomic,retain) UIView *titleView;
//中间的标题文字
@property(nonatomic,copy) NSString *title;
//左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
//右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

 

Objective - C学习笔记:控制器的管理

标签:

原文地址:http://www.cnblogs.com/YHStar/p/4382303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!