我已经以编程方式在导航栏上设置了图像,如下所示...
let myView = UIView(frame: CGRect(x: 315, y: 12, width: 20,height: 20))
myView.backgroundColor = UIColor.clear
let img = "homeIcon"
let image = UIImage(named: img)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x:1, y: -1, width:20, height: 20)
myView.addSubview(imageView)
self.navigationController?.navigationBar.addSubview(myView)
这里我要做的是创建一个 View ,向该 View 添加图像,然后将该 View 添加到导航栏。但问题是,当我单击该行并使用 segue 从此屏幕导航到另一个屏幕时,下一个屏幕的导航栏还会显示我在上一个屏幕上设置的图标。但我不希望这种事发生。下一个屏幕不应在导航栏上显示该图标。那么应该做什么呢?
最佳答案
在您呈现的 View Controller 中尝试一下:
override func viewWillAppear(_ animated: Bool) {
for view in (self.navigationController?.navigationBar.subviews)! {
if view.tag == 1 {
view.removeFromSuperview()
}
}
}
并在 viewWillAppear
中添加用于在初始 Controller 中设置导航栏图像的代码,确保将包含 ImageView 的 View 标记设置为 1。
希望对您有所帮助。
关于ios - 以编程方式在导航栏上设置图像并与 segue 一起显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46129383/