UINavigationController ——— 导航控制器

1、具有管理视图控制器的控制器

2、导航控制器管理具有层次级别的多视图控制器

3、创建导航控制器

①、创建视图控制器

TextViewController *text = [[TextViewController alloc] init];

②、创建导航控制器控制视图

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:text];

③、将导航控制器赋给根视图控制器

self.window.rootViewController = nav;

二、导航控制器的属性管理

1、设置导航栏的标题

self.title = @"主页”;

注意:self.title(通用标题)UINavigationController和UITabbarController都有效

2、单独设置UINaVigationController标题

self.navigationItem.title = @"设置”;

3、添加item

①、利用按钮标题创建barButtonIem(左item)

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:@selector(leftAction:)];

②、利用系统样式创建barButtonItem(右item)

UIBarButtonItem *right = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(leftAction:)];

self.navigationItem.rightBarButtonItem = right;

③、利用图片创建barButtonItem

UIImage *image = [UIImage imageNamed:@"1.jpg"];

image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIBarButtonItem *imageItem = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(leftAction:)];

注意:图片尺寸最好 32*32(像素)

4、NavigationController的属性设置

//多态:父类指针指向子类对象

self.navigationItem.titleView = segment;

//设置是否隐藏导航栏

self.navigationController.navigationBar.hidden = NO;

//设置背景颜色

self.navigationController.navigationBar.backgroundColor = [UIColor yellowColor];

//设置导航栏的样式

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

//设置导航栏原色颜色

self.navigationController.navigationBar.tintColor = [UIColor cyanColor];

//设置导航栏是否透明

//当导航栏为透明色时,控制器的根视图原点为屏幕原点

//当导航栏不为透明色时,控制器的根视图原点为导航栏左下角

//状态栏高度20,导航栏高度为44

//在iOS7版本以后,对导航栏颜色背景相关的设置会影响状态栏

self.navigationController.navigationBar.translucent = YES;

//当前导航控制器中的所有控制器

self.navigationController.viewControllers;

//栈顶控制器 == 当前可见视图控制器

self.navigationController.topViewController;

self.navigationController.visibleViewController;

①、用于跳转第二页

//创建新的页面/视图控制器

RootViewController *root = [[RootViewController alloc] init];

//利用导航控制器推出新的页面

[self.navigationController pushViewController:root animated:YES];

②、用于返回上一个视图的

//返回到栈底视图控制器,根视图控制器

[self.navigationControllerpopToRootViewControllerAnimated:YES];

//将当前视图控制器出栈,显示上一个视图控制器

[self.navigationControlle

popViewControllerAnimated:YES];

//返回到指定视图控制器(必须存在栈中)

[self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];

③、模态跳转

//模态推出页面

//不在导航控制器

[self presentViewController:second animated:YES completion:^{

NSLog(@"第二页已经被推出");

}];

//模态页面时的动画

second.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

//退出模态

[self dismissViewControllerAnimated:YES completion:^{

NSLog(@"已经退出模态");

}];

你可能感兴趣的:(UINavigationController ——— 导航控制器)