使用导航栏或创建自定义 class 向 swift 中的每个视图添加自定义工具栏?
Add custom toolbar to every view in swift using navigation bar or creating custom class?
我想在我的应用程序的每个视图中添加一个工具栏,它非常基本,如下所示:
注意:左右项目在每个视图中都是相同的。
我想知道在每个 viewcontroller 中自定义导航栏或创建一个扩展 UIToolBar 并将其添加到每个控制器的 class 是否更好。什么是更好的做法?
根据我的说法,您应该创建 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()
中调用此方法
希望对您有所帮助。
我想在我的应用程序的每个视图中添加一个工具栏,它非常基本,如下所示:
注意:左右项目在每个视图中都是相同的。
我想知道在每个 viewcontroller 中自定义导航栏或创建一个扩展 UIToolBar 并将其添加到每个控制器的 class 是否更好。什么是更好的做法?
根据我的说法,您应该创建 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()
希望对您有所帮助。