设置导航条的内容
设置导航条的内容,由栈顶控制器的NavgationItem决定.
导航控制器必须要有根控制器.目的设置导航条的内容.
如果设置了导航条的标题, 那么下一个push的子控制器的返回按钮就是上一个控制器的标题.
UINavigationItem有以下属性影响着导航栏的内容
左上角的返回按钮
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
中间的标题视图
@property(nonatomic,retain) UIView *titleView;
中间的标题文字
@property(nonatomic,copy) NSString *title;
左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;
设置导航条标题
self.navigationItem.title = @"导航条标题"
导航条上面的子控件位置由系统决定,我们自己只能决定控件的尺寸
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 2000, 200, 35)];
view.backgroundColor = [UIColor redColor];
导航条的标题可以是一个自定义的UIView.
self.navigationItem.titleView = view;
设置导航条左边的内容为标题.
Title:设置的标题
style:样式,从ios7之后,这个地方设置什么都没有用了, 所以让它默认,它是一个枚举,直接可以写0.
target: action: 点击时调用哪个对象的哪个方法.
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:0 target:self action:@selector(back)];
设置左边的内容为图片
initWithImage:要显示的图片.
style:样式,从ios7之后,这个地方设置什么都没有用了, 所以让它默认,它是一个枚举,直接可以写0.
target: action: 点击时调用哪个对象的哪个方法.
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStyleDone target:nil action:nil];
显示多张图片,不同状态,用按钮
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
设置按钮正常状态下显示的图片
[btn setImage:[UIImage imageNamed:@"navigationbar_friendsearch"] forState:UIControlStateNormal];
设置按钮高亮状态下显示的图片
[btn setImage:[UIImage imageNamed:@"navigationbar_friendsearch_highlighted"] forState:UIControlStateHighlighted];
按钮自适应,根据当中的图片标题自动计算尺寸
[btn sizeToFit];
让导航条左侧或者右侧显示一个UIView.
initWithCustomView:要显示的View.
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:btn];
可以设置左右的内容为多个Item.
self.navigationItem.rightBarButtonItems = @[item,item1,item2];