一既绩、為什么要自定義UITabBarController
1.想把UITabBarController內(nèi)部的子控制器細(xì)節(jié)屏蔽起來,不讓外界了解
2.另外一個(gè)目的:每一段代碼都應(yīng)該放在最合適的地方
二蔽挠、重復(fù)代碼的抽取的技巧
1.相同的代碼放到一個(gè)方法中
2.不同的東西變成參數(shù)
3.在需要用到這段代碼的地方傳遞參數(shù)师崎、調(diào)用方法
三、統(tǒng)一所有控制器導(dǎo)航欄左上角和右上角的內(nèi)容
1.讓所有push進(jìn)來的控制器汇歹,它導(dǎo)航欄左上角和右上角的內(nèi)容都一樣
2."攔截"所有push進(jìn)來的控制器
3.方案:自定義導(dǎo)航控制器屁擅,重寫push方法,就可以得到傳進(jìn)來的控制器參數(shù)
// 90%的"攔截"都是通過自定義類产弹,重寫自帶的方法實(shí)現(xiàn)的
四派歌、"duplicate symbol OBJC_METACLASS$_類名 in:"錯(cuò)誤
1.90%都是因?yàn)?import了.m文件
2.其他可能是因?yàn)轫?xiàng)目中存在了2個(gè)一樣的.m文件
五、創(chuàng)建UIBarButtonItem的代碼為什么放在UIBarButtonItem分類中最合適取视?
+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(NSString *)image highImage:(NSString *)highImage
{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
// 設(shè)置圖片
[btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
// 設(shè)置尺寸
btn.size = btn.currentBackgroundImage.size;
return [[UIBarButtonItem alloc] initWithCustomView:btn];
}
1.項(xiàng)目中有多處地方用到這段代碼
2.每一段代碼都應(yīng)該放在最合適的地方:這段代 碼明顯在創(chuàng)建一個(gè)UIBarButtonItem硝皂,所以跟 UIBarButtonItem相關(guān)
3.從命名習(xí)慣和規(guī)范的角度看:[UIBarButtonItem itemWith....]這種形式創(chuàng)建item比較規(guī)范
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者