系統導覽列應該再iOS開發項目中都會有用到。但是有時間長篇大論的在C裡邊寫一大串代碼,未必會有些繁雜。基于封裝角度,今天我們來做一個導覽列UIBarButtonItem的進一步封裝,讓代碼更簡潔
今天通過給導覽列添加圖檔來舉例說明
我們先看下系統給我們開出來的方法
這裡封裝采用自定義view,通過分類方式實作。目的為了調用友善。當然這是項目源碼,可放心使用。直接上代碼
/**
系統導覽列按鈕UIBarButtonItem封裝
@param imageName 圖檔名字
@param target 目前Controller
@param action 方法名
@return 傳回根據圖檔可定制UIBarButtonItem
*/
+(instancetype)itemWithImageNamed:(NSString *)imageName
target:(id)target
action:(SEL)action;
這是分類.h裡邊的方法。上邊是調用示例,下邊為開出來的方法。注釋比較詳細。代碼可建立分類後直接拷貝過去使用
.m實作方法
/**
系統導覽列按鈕UIBarButtonItem封裝
@param imageName 圖檔名字
@param target 目前Controller
@param action 方法名
@return 傳回根據圖檔可定制UIBarButtonItem
*/
+(instancetype)itemWithImageNamed:(NSString *)imageName
target:(id)target
action:(SEL)action{
UIButton * Barbutton = [[UIButton alloc]init];
[Barbutton setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
[Barbutton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
[Barbutton sizeToFit];
return [[UIBarButtonItem alloc]initWithCustomView:Barbutton];
}
調用示例。在Controller裡邊直接調用即可
/**
系統導覽列按鈕封裝,
可直接倒入頭檔案使用
調用示例
右側導覽列按鈕,
self.navigationItem.rightBarButtonItem = [UIBarButtonItem itemWithImageNamed:@"message_pic"
target:self
action:@selector(didSelectRightNavButton)];
左側導覽列按鈕
self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithImageNamed:@"message_pic"
target:self
action:@selector(didSelectRightNavButton)];
*/
很實用的小技巧。每天進步一點點