Objective-C
// 设置导航栏提示内容
/*
导航栏提供了一个很少用的提示模式,该模式将高度扩展了 30 像素
*/
self.navigationItem.prompt = @"hello";
// 设置标题
self.navigationItem.title = @"详情页";
// 设置自定义标题视图
/*
x,y,width 设置无效,图片不会自动压缩
*/
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo_title.png"]];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 0, 35)];
imageView.image = [UIImage imageNamed:@"logo_title.png"];
self.navigationItem.titleView = imageView;
// 设置按钮文字颜色
/*
需要先设置按钮才能生效,iOS6 中是设置背景颜色,在 iOS7 以后变成设置文字颜色
*/
self.navigationItem.leftBarButtonItem.tintColor = [UIColor redColor];
self.navigationItem.rightBarButtonItem.tintColor = [UIColor greenColor];
// 设置导航栏按钮
// 1、通过设置标题文字设置
/*
设置左侧按钮,当设置左按钮的时候,自动隐藏系统自带的返回上一页,需手动设置按钮点击事件
*/
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回"
style:UIBarButtonItemStylePlain
target:self
action:@selector(leftButtonClick:)];
// 2、通过系统编辑按钮设置
/*
系统自带的导航专用编辑按钮,点击后变为 Done,再次点击变回 Edit,自带点击响应事件
*/
self.navigationItem.rightBarButtonItem = self.editButtonItem;
// 系统自带编辑按钮点击响应事件,self.editButtonItem 自带的点击事件
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
// 使用这个方法时,需要让父类也执行一下这个方法
[super setEditing:editing animated:animated];
}
// 3、通过系统提供的样式设置
/*
UIBarButtonSystemItemDone, Done
UIBarButtonSystemItemCancel, Cancel
UIBarButtonSystemItemEdit, Edit
UIBarButtonSystemItemSave, Save
UIBarButtonSystemItemUndo, Undo
UIBarButtonSystemItemRedo, Redo
UIBarButtonSystemItemAdd, 加号 图标按钮
UIBarButtonSystemItemFlexibleSpace, 弹簧 按钮,将 button 推向两边
UIBarButtonSystemItemFixedSpace, 弹簧 按钮,将 button 推向两边,
可设间距 fixedSpaceButton.width = 50;
UIBarButtonSystemItemCompose, 撰写 图标按钮
UIBarButtonSystemItemReply, 答复 图标按钮
UIBarButtonSystemItemAction, 详情 图标按钮
UIBarButtonSystemItemOrganize, 文件夹 图标按钮
UIBarButtonSystemItemBookmarks, 书籍 图标按钮
UIBarButtonSystemItemSearch, 搜索 图标按钮
UIBarButtonSystemItemRefresh, 刷新 图标按钮
UIBarButtonSystemItemStop, X 号 图标按钮
UIBarButtonSystemItemCamera, 相机 图标按钮
UIBarButtonSystemItemTrash, 删除 图标按钮
UIBarButtonSystemItemPlay, 播放 图标按钮
UIBarButtonSystemItemPause, 暂停 图标按钮
UIBarButtonSystemItemRewind, 快退 图标按钮
UIBarButtonSystemItemFastForward, 快进 图标按钮
*/
self.navigationItem.rightBarButtonItem =[[UIBarButtonItem alloc]
initWithBarButtonSystemItem: UIBarButtonSystemItemCamera
target: self
action: @selector(rightButtonClick:)];
// 4、通过图片设置
/*
处理阴影,如果直接设置 image 出现阴影,这时候需要设置图片渲染方式
*/
UIImage *image = [[UIImage imageNamed:@"main_right_nav.png"]
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
initWithImage: image
style: UIBarButtonItemStylePlain
target: self
action: @selector(rightButtonClick:)];
// 5、通过自定义视图设置
/*
前两个坐标设置无效,图片会自动压缩
*/
UIButton *myView = [UIButton buttonWithType:UIButtonTypeCustom];
myView.frame = CGRectMake(0, 0, 50, 30);
[myView setBackgroundImage:[UIImage imageNamed:@"pic1"] forState:UIControlStateNormal];
[myView addTarget:self action:@selector(rightButtonClick:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myView];
Swift
// 设置导航栏提示内容
/*
导航栏提供了一个很少用的提示模式,该模式将高度扩展了 30 像素
*/
self.navigationItem.prompt = "hello"
// 设置标题
self.navigationItem.title = "详情页"
// 设置自定义视图标题
/*
x,y,width 设置无效,图片不会自动压缩
*/
self.navigationItem.titleView = UIImageView(image: UIImage(named: "logo_title.png"))
let imageView = UIImageView(frame: CGRectMake(0, 0, 0, 35))
imageView.image = UIImage(named: "logo_title.png")
self.navigationItem.titleView = imageView
// 设置按钮文字颜色
/*
需要先设置按钮才能生效,在 iOS6 中是设置背景颜色,在 iOS7 以后变成设置文字颜色
*/
self.navigationItem.leftBarButtonItem?.tintColor = UIColor.redColor()
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.greenColor()
// 设置导航栏按钮
// 1、通过设置标题文字设置
/*
设置左侧按钮,当设置左按钮的时候,自动隐藏系统自带的返回上一页,需手动设置按钮点击事件
*/
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "返回",
style: .Plain,
target: self,
action: #selector(ViewController2.leftButtonClick(_:)))
// 2、通过系统编辑按钮设置
/*
系统自带的导航专用编辑按钮,点击后变为 Done,再次点击变回 Edit,自带点击响应事件
*/
self.navigationItem.rightBarButtonItem = self.editButtonItem();
// 3、通过系统提供的样式设置
/*
Done, Done
Cancel, Cancel
Edit, Edit
Save, Save
Undo, Undo
Redo, Redo
Add, 加号 图标按钮
FlexibleSpace, 弹簧 空按钮,将 button 推向两边
FixedSpace, 弹簧 空按钮,将 button 推向两边,可设置间距 fixedSpaceButton.width = 50;
Compose, 撰写 图标按钮
Reply, 答复 图标按钮
Action, 详情 图标按钮
Organize, 文件夹 图标按钮
Bookmarks, 书籍 图标按钮
Search, 搜索 图标按钮
Refresh, 刷新 图标按钮
Stop, X 号 图标按钮
Camera, 相机 图标按钮
Trash, 删除 图标按钮
Play, 播放 图标按钮
Pause, 暂停 图标按钮
Rewind, 快退 图标按钮
FastForward, 快进 图标按钮  
*/
self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Camera,
target: self,
action: #selector(ViewController2.rightButtonClick(_:)))
// 4、通过图片设置
/*
处理阴影,如果直接设置 image 出现阴影,这时候需要设置图片渲染方式
*/
let image = UIImage(named: "main_right_nav.png")?.imageWithRenderingMode(.AlwaysOriginal)
self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: image,
style: .Plain,
target: self,
action: #selector(ViewController2.rightButtonClick(_:)))
// 5、通过自定义视图设置
/*
前两个坐标设置无效,图片会自动压缩
*/
let myView = UIButton(type: .Custom) myView.frame = CGRectMake(0, 0, 50, 30)
myView.setBackgroundImage(UIImage(named: "pic1"), forState: UIControlState.Normal)
myView.addTarget(self, action: #selector(ViewController2.rightButtonClick(_:)),
forControlEvents: .TouchUpInside)
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: myView)