一、多控制器
一个ios的app很少只有一个控制器组成,除非这个app极其简答,当app中有多个控制器的时候,我们就需要对这些控制器进行管理,有多个view时,可以用一个大的view来管理一个或多个view,控制器也是如此,用1个控制器去管理其他多个控制器,比如,用一个控制器A去管理3个控制器B、C、D的“父类控制器”;控制器B、C、D的被称为控制器A的“子控制器”
为了便于管理控制器,ios提供了2个比较特殊的控制器
UINavigationController
UITabBarController
二、导航控制器
利用UINavigationController, 可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用
三、UINavigationController的使用步骤
(1)初始化UINavigationController
(2)设置UIWindow的rootViewController为UINavigationController
(3)根据具体情况,通过push方法添加对应个数的子控制器
#import "YYAppleDelegate.h"
#import "YYOneViewController.h"
@implementation YYAppleDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window =[ [UIWindow alloc]initWithFrame:[UIScreen mainScreen] bounds];
self.window.backgroundColor = [UIColor redColor];
//创建一个导航控制器
UINavigationController *nav = [UINavigationController alloc]init];
//设置导航控制器为window的根视图
self.window.rootViewController = nav;
//3、添加子控制器到导航控制器中
//创建一些控制器
UIViewController *c1 = [[UIViewController alloc] init];
//设置c1这个控制器的视图颜色
c1.view.backgroundColor = [UIColor redColor];
UIViewController *c2 =[ [UIViewControlller alloc]init];
c2.view.backgroundColor = [UIColor purpleColor];
UIViewController *c3 = [[UIViewController alloc]init];
//将这些控制器添加到导航控制器中
[nav pushViewController:c1 animated:YES];
[nav pushViewController:c2 animated:YES];
[nav pushViewController:c3 animated:YES];
[self.window makeKeyAndVisible];
return YES;
}