以编程方式将imageview添加到所有viewcontrollers

Jit*_*odi 3 dynamic uiviewcontroller imageview ios swift

有一个要求,例如向所有视图控制器添加一个imageview,但我有150多个xib,将imageview放入每个单独的xib中非常耗时。

有通用的方法吗?我用谷歌搜索,但没有发现有用的信息。

任何帮助,将不胜感激。

Jay*_*yas 5

如果您使用这样的基类将很容易

class BaseVC: UIViewController
{
   var imageView:UIImageView = UIImageView.init()

   override func viewDidLoad() {
        super.viewDidLoad()
        addImageView()
    }
    override func viewWillAppear(_ animated: Bool) {
    //self.view.bringSubview(toFront: imageView) //To bring imageview infront of other views put this method as per your requirement
    }
   func addImageView(name:String = "default")
   {
    let image = UIImage(named: name)
    imageView.image = image
    imageView.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
    //view.addSubview(imageView)
    view.insertSubview(imageView, at: 0) /*For put image view below all image*/
   }
}
Run Code Online (Sandbox Code Playgroud)

您需要像这样派生所有视图控制器

class YourVC: BaseVC
Run Code Online (Sandbox Code Playgroud)

您也可以使用不同的视图控制器来更改图像。喜欢

class YourVC: BaseVC
{
     override func viewDidLoad() {
            super.viewDidLoad()
            addImageView(name:"xyz")
        }
}
Run Code Online (Sandbox Code Playgroud)