在 Swift 3.0 的应用程序的所有屏幕中更改返回按钮图像
Posted
技术标签:
【中文标题】在 Swift 3.0 的应用程序的所有屏幕中更改返回按钮图像【英文标题】:Change back button image in all screen of app in Swift 3.0 【发布时间】:2016-11-22 09:43:33 【问题描述】:我尝试使用以下代码但无法得到结果。
let backArrowImage = UIImage(named: "backButton")!
UINavigationBar.appearance().backIndicatorImage = backArrowImage
UINavigationBar.appearance().backIndicatorTransitionMaskImage = backArrowImage
或
UIBarButtonItem.appearance().setBackButtonBackgroundImage(backArrowImage, for: .normal, barMetrics: .default)
我还有什么需要做的吗?
【问题讨论】:
为此创建一个类别......并从所有视图控制器的 ViewDidAppear 调用相同的方法 你在哪里打电话UIBarButtonItem.appearance().setBackButtonBackgroundImage(backArrowImage, for: .normal, barMetrics: .default)
?
您是否在 UIBarButtonItem 中嵌入了 UIButton?
首先将图像“backButton”重命名为“backButton_old”,然后添加所需的后退按钮并将名称替换为“backButton”。
【参考方案1】:
我在项目中使用的一些方法。
1)创建自定义导航控制器:
class CustomNavigationViewController: UINavigationController
override func viewDidLoad()
super.viewDidLoad()
self.navigationController?.navigationItem.backBarButtonItem = UIBarButtonItem(title: "\0x00a0", style: .Plain, target: nil, action: nil)
// Do any additional setup after loading the view, typically from a nib.
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
2) 在 viewDidLoad 或 viewWillAppear 中设置 : // 你需要的用户
func configureNavController()
self.title = "navTitle"
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.barTintColor = //Color
self.navigationController?.navigationBar.tintColor = //Color
self.navigationController?.navigationBar.translucent = false
if isRootView == true // Do this if you are in detail view and want to pop your VC
let backButton = UIBarButtonItem(title: "Back".localized, style: .Plain, target: self, action: #selector(backButtonClicked))
navigationItem.leftBarButtonItem = backButton
self.navigationItem.rightBarButtonItem = self.sendButton
【讨论】:
以上是关于在 Swift 3.0 的应用程序的所有屏幕中更改返回按钮图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 3.0 中制作 5*8 集合视图 [关闭]
获取“无法打开应用程序,因为您无权查看它。 “将项目代码从swift 2.2转换为swift 3.0之后
Google Analytics(分析)屏幕跟踪 swift 3.0 不起作用