gpt4 book ai didi

swift - 在 NavigationController 中添加右键按钮

转载 作者:可可西里 更新时间:2023-11-01 02:01:11 26 4
gpt4 key购买 nike

我有 Storyboard设置,所有 View Controller 扩展导航 Controller 类 NavigationController: UINavigationController, UIViewControllerTransitioningDelegate 自定义导航栏设置导航 Controller 类 CustomNavigationBar:UINavigationBar Here是 NavigationController 的代码

class NavigationController: UINavigationController, UIViewControllerTransitioningDelegate {

override func viewDidLoad() {
super.viewDidLoad()
}
}

这是CustomNavigationBar

的代码
class CustomNavigationBar: UINavigationBar {

override func awakeFromNib() {
var font = UIFont(name: "Montserrat-Light", size: 17)!
if "ar" == userLocale() {
font = UIFont(name: "DroidSansArabic", size: 17)!
}
let attribtutes = [
NSFontAttributeName: font,
NSForegroundColorAttributeName: UIColor.black,
NSKernAttributeName: 5.0
] as [String : Any]
UINavigationBar.appearance().titleTextAttributes = attribtutes
UINavigationBar.appearance().tintColor = UIColor.black
UINavigationBar.appearance().backgroundColor = UIColor.white

let image = UIImage(named: "back-btn")
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -66), for: .default)
UINavigationBar.appearance().backIndicatorImage = image
}
}

到目前为止一切顺利,我现在想添加一个带有自定义 View 的右栏导航项。我尝试在 NavigationController::viewDidLoad()

中添加以下代码
let customView:UIView = UIView()
customView.backgroundColor = .green
customView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
let item = UIBarButtonItem(customView: customView)
self.navigationItem.setRightBarButton(item, animated: false)

由于某种原因,这没有显示在导航菜单中。我哪里错了?

最佳答案

您需要在您的基础 View Controller 中添加您的自定义导航按钮代码部分,因为每个 viewController 都有它自己的 navigationItem这就是为什么您的自定义按钮没有显示

您需要使用 BaseViewController 类来满足您的需求,然后从您的 BaseViewController 中继承所有 viewController,您只需在 viewDidLoad 中添加一次导航按钮自定义代码即可。 p>

像这样

class BaseViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
let customView:UIView = UIView()
customView.backgroundColor = .green
customView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
let item = UIBarButtonItem(customView: customView)
self.navigationItem.setRightBarButton(item, animated: false)
}

}

关于swift - 在 NavigationController 中添加右键按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com