在removeFromSuperView 之后,init 中调用的那些func 如何再次调用?

问题描述

我有一个自定义对话框,我正在使用 UIView 来完成它。 我创建了一个实例来显示对话框并使用 removeFromSuperView 来关闭它。 但似乎对话框的生命周期并没有真正被破坏,每当我再次打开对话框时,它都不会执行 init() 中的那些函数

我怎样才能真正破坏自定义视图?还是无论如何要再次调用 init() 中的那些 func?

class customDialog: UIView {
static let instance = customDialog()

override init(frame: CGRect) {
        super.init(frame: frame)
        print("reload!")
        Bundle.main.loadNibNamed("customDialog",owner: self,options: nil)
        self.customInit1()
        self.customInit2()
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    @objc func closeDialog(_ sender:UITapGestureRecognizer){
        self.parentView.removeFromSuperview()
    }
    
    func showDialog(){
        UIApplication.shared.keyWindow?.addSubview(self.parentView)
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)