#import "OneViewController.h"
#import "TwoViewController.h"
@interface OneViewController ()
@end
@implementation OneViewController
- (void)viewDidLoad {
[super viewDidLoad];
//设置标题
//self.title = @"根控制器";
self.navigationItem.title = @"根控制器";
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"左侧" style:0 target:self action:@selector(BtnClick)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"右侧" style:0 target:self action:@selector(BtnClick)];
// 图片的方式,系统会把图片默认渲染成蓝色,显示会有问题
// 所以要去Assets.xcassets中配置一下该图片的渲染方式
// UIImage *image = [UIImage imageNamed:@"navigationbar_friendsearch"];
// self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:image style:0 target:self action:@selector(BtnClick)];
// 按钮用到图片的时候,可以不用去配置图片的渲染方式,显示不会有问题
UIButton *btn = [[UIButton alloc] init];
[btn setImage:[UIImage imageNamed:@"navigationbar_friendsearch"] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamed:@"navigationbar_friendsearch_highlighted"] forState:UIControlStateHighlighted];
//导航条上面自定义的控件必须得要有尺寸大小.
//自适应大小
[btn sizeToFit];
//
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.titleView = [UIButton buttonWithType:UIButtonTypeContactAdd];
}
- 导航控制器所有子控制器以栈的形式存放
- 导航控制器显示的是栈顶控制器的View
- push一个控制器的时候,之前的view会从导航控制器的View中移除,但是因为对应的控制器还保存在控制器的栈里面,所以不会销毁 移除的View,pop一个控制器的时候,之前的view会从导航控制器的View中移除,因为对应的控制器没有保存在控制器的栈里面,所以会销毁 移除的View
// 当前类或者它的子类第一次使用的时候调用.
+ (void)initialize {
// 获取整个应用程序下所有的导航条.
//UINavigationBar *bar = [UINavigationBar appearance];
// 获取指定类下面的导航条
UINavigationBar *bar = [UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[self class]]];
//设置导航条
//设置背景(设置背影图片时, 必须得要使用)
[bar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];
//设置导航条上的标题颜色
//设置主题颜色
//[nav.navigationBar setTintColor:[UIColor whiteColor]];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[NSForegroundColorAttributeName] = [UIColor whiteColor];
dict[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20];
[bar setTitleTextAttributes:dict];
}
// 当前类或者它的子类第一次使用的时候调用.
+ (void)initialize {
//获取整个应用程序下所有的导航条.
//UINavigationBar *bar = [UINavigationBar appearance];
//获取指定类下面的导航条
UINavigationBar *bar = [UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[XMGNavigationController class]]];
//设置导航条
//设置背景(设置背影图片时, 必须得要使用)
[bar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];
//设置导航条上的标题颜色
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[NSForegroundColorAttributeName] = [UIColor greenColor];
dict[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20];
[bar setTitleTextAttributes:dict];
[bar setTintColor:[UIColor whiteColor]];
UIBarButtonItem *barItem = [UIBarButtonItem appearance];
NSMutableDictionary *dict2 = [NSMutableDictionary dictionary];
dict2[NSForegroundColorAttributeName] = [UIColor blueColor];
[barItem setTitleTextAttributes:dict2 forState:UIControlStateNormal];
// 让“我的彩票”四个字往上偏移64,使其隐藏
// [barItem setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -64) forBarMetrics:UIBarMetricsDefault];
}