我希望将一个工具栏添加到我的应用程序的每个视图,该视图非常基本,看起来像这样:
注意:每个视图中的左右项目都相同。
我想知道最好是在每个viewcontroller中自定义导航栏,还是创建一个扩展UIToolBar并将其添加到每个控制器的类。什么是更好的做法?
答案 0 :(得分:2)
根据我的说法,您应该创建UIViewController的扩展。它会有一个方法,其中包含修改该视图控制器的导航栏的代码。这样,您可以修改所需屏幕的导航栏,这将是非常灵活的设计方式。
例如,下面的扩展程序会将导航栏设置为透明,
extension UIViewController {
func setTransparentNavBar(_ target: UIViewController, leftAcion: Selector, rightAction: Selector) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationItem.titleView = UIImageView(image: UIImage(named: "icon_2"))
let leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_1"), style: UIBarButtonItem.Style.plain, target: target, action: leftAcion)
//self.navigationItem.setLeftBarButton(leftBarButtonItem, animated: true)
self.navigationItem.leftBarButtonItem = leftBarButtonItem
let rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_3"), style: UIBarButtonItem.Style.plain, target: target, action: rightAction)
//self.navigationItem.setRightBarButton(rightBarButtonItem, animated: true)
self.navigationItem.rightBarButtonItem = rightBarButtonItem
}
}
每当需要此配置时,请在viewDidLoad()
中调用此方法
希望这会有所帮助。