导航控制器散记

导航控制器的内存原理:
导航控制器进栈出栈 先进后出 后出先进

/*
*1.导航控制器在内存上管理viewcontroller是通过栈的方式
栈的特点:先进后出, 后进先出
push是入栈 pop是出栈
导航控制器始终显示栈顶得元素

*/
//设置导航栏的外观, 高度是44  状态栏的高度是20
//取消导航栏的半透明效果

设置导航栏是否透明
self.naVC.navigationBar.translucent = NO;
拖拽导航栏使导航栏出现和隐藏
self.naVC.hidesBarsOnSwipe = YES;
//点击空白隐藏和显示导航栏(轻拍手势)
-(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event
{
if (self.naVC.navigationBarHidden) {
[self.naVC setNavigationBarHidden:NO animated:YES];
}else{
[self.naVC setNavigationBarHidden:YES animated:YES];
}
}

//viewControllers存放着导航控制器管理的所有viewController
//打印一下知道下标
NSLog(@”====%@”,self.navigationController.viewControllers);
UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:1];
//跳到指定下标页面
[self.navigationController popToViewController:vc animated:YES];

//设置左侧按钮(系统的属性在后面加个autorelease) self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@”gear.png”] style:UIBarButtonItemStylePlain target:self action:@selector(leftAction:)] autorelease];

//自定义导航栏——>添加多个按钮
//收藏按钮
UIBarButtonItem *collection = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@”btn_icon_collect_1@3x.png”] style:UIBarButtonItemStylePlain target:self action:@selector(collectionAction)];
//分享按钮
UIBarButtonItem *share = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@”but_share_blue_new@3x.png”] style:UIBarButtonItemStylePlain target:self action:@selector(shareAction)];
NSArray *itemsArr = @[share,collection];
self.navigationItem.rightBarButtonItems = itemsArr;

按钮颜色渲染
UIImage *leftImage = [UIImage imageNamed:@”btn_nav_back.png”];
leftImage = [leftImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIImage *rightImage = [UIImage imageNamed:@”btn_nav_share.png”];
//取消渲染
rightImage = [rightImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:leftImage style:UIBarButtonItemStyleDone target:self action:@selector(leftButtonAction:)];

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:rightImage style:UIBarButtonItemStyleDone target:self action:@selector(rightButtonAction:)];

//设置bar的背景图片
[naVC.navigationBar setBackgroundImage:[UIImage imageNamed:@”bg_nav.png”] forBarMetrics:UIBarMetricsDefault];

改变navc的字体颜色及大小
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSFontAttributeName:[UIFont systemFontOfSize:19],
NSForegroundColorAttributeName:[UIColor redColor]}];

ios7之后的导航栏默认是半透明的,scrollview会自动适应到00点,当滑动scrollview时候会导致崩溃,所以必须写下面这句话
[self setAutomaticallyAdjustsScrollViewInsets:NO];
.或者给他设置为不透明

设置导航栏完全透明,但不影响按钮和标题的显示
[naVC.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
naVC.navigationBar.shadowImage = [UIImage new];
naVC.navigationBar.translucent = YES;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值