关于UINavigationController,是很让人蛋疼的一个控制器,且不说进阶、单单是那些Item、Item颜色的设置就让人混淆。
先上图:
我们重点看NavigationBar
下面开始上干货:
1、如何修改返回键的颜色?
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
注意:该方法不仅修改了返回键的颜色、也修改了self.navigationItem.rightBarButtonItem和self.navigationItem.leftBarButtonItem的颜色,因为这三者都是
UIBarButtonItem的实例,当然前提是这三者都是使用系统自带的、而非自定义的图片。
2、如何自定义返回键?
self.navigationItem.hidesBackButton = YES;
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setImage: [UIImage imageNamed:@"back"] forState:UIControlStateNormal];
backButton.frame = CGRectMake(10,10, 30, 30);
[backButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc]initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = leftItem;
self.navigationItem.title = @"社交" 或者 self.title = @"社交"
NSDictionary *dic = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
[[UINavigationBar appearance] setTitleTextAttributes:dic];
_segment = [[UISegmentedControl alloc] initWithItems:segmentArr];
//_segment.frame = CGRectMake(0, 0, kWindowWidth, 30);
_segment.layer.masksToBounds = YES;
_segment.selectedSegmentIndex = 0;
// _segment.backgroundColor = [UIColor blackColor];
_segment.tintColor = [UIColor whiteColor];
[_segment addTarget:self action:@selector(segmentChanged) forControlEvents:UIControlEventValueChanged];
self.navigationItem.titleView = _segment;
5、为什么导航条颜色和我设置的有些色差?
self.navigationController.navigationBar.translucent = NO;关闭高斯模糊。
关于这些设置还有很多,暂不一一列举,如果没有找到你想要的可以在底下评论,第一时间回复。
看完了这些坑、还没有介绍主角:
:UINavigationController 是导航控制器、他通过栈的方式控制当前显示在屏幕上的是哪个控制器(push、pop)。关于这些方法、官方文档很清楚、无需多言。