backBarButtonItem 显示图像不正确
backBarButtonItem display image incorrect
我正在为 backBarButtonItem
使用带有图像的自定义 UIBarButtonItem
。我发现了奇怪的行为,因为除了我的图像外,还显示了默认的箭头图标。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationItem.backBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "BackButtonIcon"), style: .plain, target: nil, action: nil)
}
@IBAction private func push(_ button: UIButton) {
let secondViewController = SecondViewController()
navigationController?.pushViewController(secondViewController, animated: true)
}
}
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
}
}
结果是
尝试使用:
navigationBar.backIndicatorImage = #imageLiteral(resourceName: "BackButtonIcon")
navigationController?.navigationBar.backIndicatorTransitionMaskImage = #imageLiteral(resourceName: "BackButtonIcon")
navigationItem.backBarButtonItem = UIBarButtonItem(title: "Title", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
导航栏有一个 属性 的背景图像以及一个 UINavigationItem 的 backItem 属性。您可以阅读更多 here.
编辑:
在源视图控制器而不是目标控制器中使用此代码。
在 viewDidLoad
或 viewWillAppear
中尝试 self.navigationItem.setHidesBackButton(true, animated: true)
。
编辑:这隐藏了本机后退按钮。然后你应该可以设置你自己的。
我正在为 backBarButtonItem
使用带有图像的自定义 UIBarButtonItem
。我发现了奇怪的行为,因为除了我的图像外,还显示了默认的箭头图标。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
navigationItem.backBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "BackButtonIcon"), style: .plain, target: nil, action: nil)
}
@IBAction private func push(_ button: UIButton) {
let secondViewController = SecondViewController()
navigationController?.pushViewController(secondViewController, animated: true)
}
}
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
}
}
结果是
尝试使用:
navigationBar.backIndicatorImage = #imageLiteral(resourceName: "BackButtonIcon")
navigationController?.navigationBar.backIndicatorTransitionMaskImage = #imageLiteral(resourceName: "BackButtonIcon")
navigationItem.backBarButtonItem = UIBarButtonItem(title: "Title", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
导航栏有一个 属性 的背景图像以及一个 UINavigationItem 的 backItem 属性。您可以阅读更多 here.
编辑:
在源视图控制器而不是目标控制器中使用此代码。
在 viewDidLoad
或 viewWillAppear
中尝试 self.navigationItem.setHidesBackButton(true, animated: true)
。
编辑:这隐藏了本机后退按钮。然后你应该可以设置你自己的。