Существует много разных способов обработки инициализации представления.Вы можете создать статическую функцию, которая сделает всю работу за вас.это один из способов избежать переопределения методов init.
class TestView: UIView {
var delegate: Any!
static func instantiate(with delegate: Any) -> TestView {
let nib = UINib(nibName: "TestView", bundle: nil)
guard let testView = nib.instantiate(withOwner: nil)[0] as? TestView else {
fatalError("Attempted to create TestView, failed to find object")
}
testView.delegate = delegate
return testView
}
}
Затем вы делаете следующее, чтобы создать ваше представление
let testView = TestView.instantiate(with:mydelegate)