三種導(dǎo)航欄Item為:
1、self.navigationItem.leftBarButtonItem
2、self.navigationItem.backBarButtonItem
3、self.navigationController.navigationBar.backItem
其中UINavigationItem有三種:backBarButtonItem、leftBarButtonItem、rightBarButtonItem。
一、leftBarButtonItem
如果設(shè)置了leftBarButtonItem,會(huì)替換掉backBarButtonItem。但可以設(shè)置leftItemsSupplementBackButton為YES,來(lái)同時(shí)顯示leftBarButtonItem和backBarButtonItem。
leftBarButtonItem的自定義方式如下:
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[backBtn setTitleColor:[UIColor colorWithRed:74 / 255.0 green:74 / 255.0 blue:74 / 255.0 alpha:1.0] forState:UIControlStateNormal];
[backBtn setTitle:@" 返回" forState:UIControlStateNormal];
[backBtn setImage:[UIImage imageNamed:@"NewBackButton"] forState:UIControlStateNormal];
[backBtn addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
[backBtn sizeToFit];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];
- (void)popViewController:(UIButton *)sender {
[self.navigationController popViewControllerAnimated:YES];
}
二、backBarButtonItem
backBarButtonItem是返回按鈕,可以自定義。注意:假如想實(shí)現(xiàn)第二個(gè)ViewController的backBarButtonItem,就要先在第一個(gè)ViewController中設(shè)置backBarButtonItem。
返回按鈕backBarButtonItem的自定義方式如下:
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] init];
[backBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor colorWithRed:74 / 255.0 green:74 / 255.0 blue:74 / 255.0 alpha:1.0], NSFontAttributeName:[UIFont systemFontOfSize:18]} forState:UIControlStateNormal];
backBarButtonItem.title = [NSString stringWithFormat:@"返回"];
backBarButtonItem.image = [UIImage imageNamed:@"NewBackButton"];
self.navigationItem.backBarButtonItem = backBarButtonItem;
這樣才會(huì)在第二個(gè)ViewController中有效果出現(xiàn),顯示返回按鈕樣式;?否則,無(wú)設(shè)置效果。
三、backItem
backItem只是一個(gè)只讀屬性,不能設(shè)置。