我有一个问题。
我使用show(vc)
来呈现视图控制器。
vc1 - > vc2 - > VC3
当用户点击vc3上的后退按钮时,我想从vc1重定向用户,以实现我使用下面提到的代码。
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.hidesBackButton = true
let newBackButton = UIBarButtonItem(title: "<", style: UIBarButtonItemStyle.plain, target: self, action: #selector(backToRoot(sender:)))
self.navigationItem.leftBarButtonItem = newBackButton
}
func backToRoot(sender: UIBarButtonItem) {
_ = self.navigationController?.popToRootViewController(animated: true)
}
我想要后退按钮的默认图像,而不是自定义按钮。
我有办法做到吗?
答案 0 :(得分:0)
我今天就这么做了。我发现无法改变系统后退按钮的动作。为了看起来像系统风格,我绘制相同的图片(快照模拟器,并在照相馆更改)。代码如下:
let button: UIButton = UIButton(type: .system)
高度的默认大小为30,宽度是您设置的任何值
button.frame = CGRect(x: 0, y: 0, width: 80, height: 30)
button.setImage(UIImage(named: "BackButton"), for: .normal)
默认字体如下:
button.setTitle("Back", for: .normal)
button.titleLabel?.font = UIFont(name: "AvenirNext", size: 15)
这是诀窍,你需要找到与系统相同的位置,以下是我的结果,我调整了很多次。我希望你能用,但我认为你需要找到自己的尺寸
button.imageEdgeInsets = UIEdgeInsetsMake(0, -43, 0, 0)
button.titleEdgeInsets = UIEdgeInsetsMake(0, -33, 0, 0)
button.addTarget(target, action: action, for: .touchUpInside)
let barButton = UIBarButtonItem(customView: button)