1. 利用系統(tǒng)的方法來創(chuàng)建UIBarButtonItem
//navigationController?.navigationBar.tintColor = UIColor.orange
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注冊", style: UIBarButtonItemStyle.plain, target: self,action: #selector(BaseViewController.registerWillClick))
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登錄", style: UIBarButtonItemStyle.plain, target: self,action: #selector(BaseViewController.logionWillClick))
2. 設(shè)置導(dǎo)航條和工具條的外觀枚粘,因?yàn)橥庥^設(shè)定全局有效,所以應(yīng)該在程序一進(jìn)來就設(shè)定软族,在AppDelegate里面設(shè)施
UINavigationBar.appearance().tintColor = UIColor.orange
UITabBar.appearance().tintColor = UIColor.orange
3.帶圖片的導(dǎo)航條內(nèi)容 (一)
帶圖片的導(dǎo)航條內(nèi)容
// MARK: 初始化導(dǎo)航條內(nèi)容
private func setUpNav(){
navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named:"navigationbar_friendattention"),style:UIBarButtonItemStyle.plain,target:self,action:#selector(HomeViewController.KK))
}
@objc private func KK(){
print("點(diǎn)擊了左邊")
}
4.帶圖片的導(dǎo)航條內(nèi)容: 利用button (二)
帶圖片的導(dǎo)航條內(nèi)容: 利用button
let leftBtn = UIButton()
leftBtn.setImage(UIImage(named: "navigationbar_friendattention"), for: UIControlState.normal)
leftBtn.setImage(UIImage(named: "navigationbar_friendattention_highlighted"), for: UIControlState.highlighted)
leftBtn.addTarget(self, action: #selector(HomeViewController.leftAction), for: UIControlEvents.touchUpInside)
// button自適應(yīng)大小
leftBtn.sizeToFit()
navigationItem.leftBarButtonItem = UIBarButtonItem(customView:leftBtn)
// 2.定義右邊的按鈕
let rightBtn = UIButton()
rightBtn.setImage(UIImage(named: "navigationbar_pop"), for: UIControlState.normal)
rightBtn.setImage(UIImage(named: "navigationbar_pop_highlighted"), for: UIControlState.highlighted)
// button自適應(yīng)大小
rightBtn.sizeToFit()
rightBtn.addTarget(self, action: #selector(HomeViewController.rightAction), for: UIControlEvents.touchUpInside)
navigationItem.rightBarButtonItem = UIBarButtonItem(customView:rightBtn)
@objc private func leftAction(){
print("點(diǎn)擊了左邊")
}
@objc private func rightAction(){
print("點(diǎn)擊了右邊")
}
5. UIBarButtonItem 在控制器里面的封裝
1.封裝
// MARK: 導(dǎo)航欄方法的封裝
private func create(name: String,target: Any?, action: Selector) -> UIBarButtonItem{
let rightBtn = UIButton()
rightBtn.setImage(UIImage(named: name), for: UIControlState.normal)
rightBtn.setImage(UIImage(named: name + "_highlighted"), for: UIControlState.highlighted)
// button自適應(yīng)大小
rightBtn.sizeToFit()
rightBtn.addTarget(target, action: action, for: UIControlEvents.touchUpInside)
return UIBarButtonItem(customView:rightBtn)
}
2.方法的實(shí)現(xiàn)
@objc private func leftActi1on(){
print("點(diǎn)擊了左邊")
}
3.調(diào)用
navigationItem.leftBarButtonItem = create(name: "navigationbar_friendattention", target: self, action: #selector(HomeViewController.leftActi1on))
6. UIBarButtonItem 類目的封裝
// 1.類目的創(chuàng)建
import UIKit
extension UIBarButtonItem{
class func createBarbuttonItem(name: String,target: Any?, action: Selector) -> UIBarButtonItem{
let rightBtn = UIButton()
rightBtn.setImage(UIImage(named: name), for: UIControlState.normal)
rightBtn.setImage(UIImage(named: name + "_highlighted"), for: UIControlState.highlighted)
// button自適應(yīng)大小
rightBtn.sizeToFit()
rightBtn.addTarget(target, action: action, for: UIControlEvents.touchUpInside)
return UIBarButtonItem(customView:rightBtn)
}
}
// 2. 調(diào)用類的封裝來創(chuàng)建 UIBarButtonItem
navigationItem.leftBarButtonItem = UIBarButtonItem.createBarbuttonItem(name: "navigationbar_friendattention", target: self, action: #selector(HomeViewController.leftAction))
// 3.方法的實(shí)現(xiàn)
@objc private func leftAction(){
print("點(diǎn)擊了左邊")
}