如果要添加RightBarButtonItem,我们一般会在代码中添加:
- (void)viewDidLoad {
[super viewDidLoad];
//自定义右边按钮
UIButton *rightButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
[rightButton setTitle:@"字体" forState:UIControlStateNormal];
[rightButton addTarget:self action:@selector(rightAction) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.RightBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:rightButton];
}
//右边按钮相应的方法
- (void)rightAction{
但有时候可能也需要在storyboard中添加,我以创建项目之初的那个viewController为例好了
一、在Main.storyboard中添加一个Navigation Bar进你的view controller,
二、添加一个UIButton进入UINavigation Bar的RightBarButtonItem位置,
这样storyboard左侧就会出现Left Bar Button Items、Right Bar Button Items等选项,然后你点击展开Right Bar Button Items会看见Bar Button Item,选中它
,此时点击storyboard右侧新出现的System Item选项,由于我不知道怎么删除刚才用于引出Right Bar Button Items的Button,所以我选择System item展开后的Add来替换掉Button,然后在切回Custom,然后在右侧的Bar Item选择你想要自定义的字体,图片等等。
三、像普通按钮按钮连线代码一样,连线该RightBarButtonItem的对象以及事件
至于leftBarButtonItem,方法是一样的
由于Xcode6.0之后,xib的长、宽默认为600,所以运行程序后你会看不见你自己创建的leftBarButtonItem/RightBarButtonItem,因为他超出屏幕范围了,那么我们做一下适配吧
我们会想要该导航栏左、右、上皆紧贴屏幕,导航栏长度默认为44,知道了这些条件,我们适配就简单多了
一、光标选中xib中的Navigation Bar或者storyboard中的Navigation Bar,然后目光移至storyboard右下角,直接选第三个按钮,
然后设置它左、右、上与它相邻视图的间距为0,固定height为44,注意:先把constrain to nearest neighbor 的勾去掉,然后设置间距时那个红色虚线得点击一下变为实线,否则无效;
来,看图: