Swift 如何从单个文件自定义NavigationBar?
我想让我的应用程序中的所有导航栏都使用一个文件进行配置。我创建了一个文件Swift 如何从单个文件自定义NavigationBar?,swift,Swift,我想让我的应用程序中的所有导航栏都使用一个文件进行配置。我创建了一个文件UINavCon.swift,它定义了一个类UINavCon,该类继承自UINavigationController,然后设置导航栏的自定义设置。现在,在我的另一个类(继承自uitabarcontroller和uitabarcontrollerdelegate)中,我正在运行此代码以创建导航控制器,但没有显示自定义设置: let trackerNavCon = UINavCon.init(rootViewController
UINavCon.swift
,它定义了一个类UINavCon
,该类继承自UINavigationController
,然后设置导航栏的自定义设置。现在,在我的另一个类(继承自uitabarcontroller
和uitabarcontrollerdelegate
)中,我正在运行此代码以创建导航控制器,但没有显示自定义设置:
let trackerNavCon = UINavCon.init(rootViewController: TrackerViewController())
let trackerTabItem = UITabBarItem(title: "Tracker", image: UIImage(systemName: "plus.app.fill"), tag: 1)
trackerNavCon.tabBarItem = trackerTabItem
// ...
self.viewControllers = [homeVC, trackerNavCon, historyVC]
如何使自定义项显示
注意:我使用的是Swift 5,没有故事板和SwiftUI。您可以进行扩展并相应地自定义功能。您还可以在主题函数中添加各种参数
import UIKit
extension UINavigationController : UIGestureRecognizerDelegate {
open override func viewDidLoad() {
super.viewDidLoad()
}
open override func awakeFromNib() {
themeNavigation()
}
func themeNavigation() {
self.navigationBar.barTintColor = .red
}
}
为什么不使用外观代理?@matt我不知道那种方法。现在我知道我可以将自定义设置放入SceneDelegate,但是有没有办法将自定义设置保存在自己的文件中?太好了,非常感谢。欢迎@adamcircle