right leftbarbuttonitem item bar ios swift uibarbuttonitem uinavigationitem

ios - leftbarbuttonitem - uibarbuttonitem image swift



iOS rightBarButtonItem en UINavigationController en swift (3)

Estoy tratando de poner un rightBarButtonItem de rightBarButtonItem de rightBarButtonItem a la rightBarButtonItem en un segundo controlador de vista de una pila UINavigationViewController .

Estoy creando y configurando el botón en viewDidLoad del controlador de vista que quiero mostrar. Mi código actual se ve así:

override func viewDidLoad() { super.viewDidLoad() menu_button_ = UIBarButtonItem(image: UIImage(named: "menu"), style: UIBarButtonItemStyle.Plain , target: self, action: "OnMenuClicked:") self.navigationController!.navigationItem.rightBarButtonItem = menu_button_ }

¿Qué me estoy perdiendo? El botón no aparece.


Crear una extensión de UINavigationItem como -

extension UINavigationItem { func addSettingButtonOnRight(){ let button = UIButton(type: .custom) button.setTitle("setting", for: .normal) button.titleLabel?.font = UIFont.systemFont(ofSize: 15.0) button.layer.cornerRadius = 5 button.backgroundColor = .gray button.frame = CGRect(x: 0, y: 0, width: 100, height: 25) button.addTarget(self, action: #selector(gotSettingPage), for: UIControlEvents.touchUpInside) let barButton = UIBarButtonItem(customView: button) self.rightBarButtonItem = barButton } @objc func gotSettingPage(){ } }

Y llámalo desde viewDidLoad () como -

self.navigationItem.addSettingButtonOnRight()


Debería establecer el menu_button_ como el rightBarButtonItem de su viewController lugar de la navigationController .

Tratar

self.navigationItem.rightBarButtonItem = menu_button_

en lugar de

self.navigationController!.navigationItem.rightBarButtonItem = menu_button_


Intenta con el siguiente code. esto funciona para mi.

let homeButton : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "") let logButton : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "") self.navigationItem.leftBarButtonItem = homeButton self.navigationItem.rightBarButtonItem = logButton

Y si desea establecer custom image , consulte las directrices de Apple en el siguiente enlace.

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/BarIcons.html#//apple_ref/doc/uid/TP40006556-CH21-SW1