ios - 以编程方式在导航栏上设置图像并与 segue 一起显示

标签 ios swift uinavigationbar segue

我已经以编程方式在导航栏上设置了图像,如下所示...

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/

相关文章:

ios - 如何在core graphics ios中连续绘制曲线

ios - 获取文档目录收件箱文件并移动

ios - UIScrollView 没有一直向下滚动

iphone - 核心数据 - 保存电子邮件地址

php - 上传到mysql服务器不工作

ios - 在 Swift 中编写 Kvo 上下文

ios - Cocoapods 测试问题 - 重复 "one of the two will be used. which one is undefined."

iOS11自定义导航栏高度

iphone - MKMapView 在点击时隐藏导航栏,就像在照片应用程序中一样,而不会丢失 MKMapView 的功能

ios - UINaviguationBar底部阴影消失