Способ 1:
Вы можете легко создать повторно используемое представление с помощью файлов пера (.XIB) и назначить ему собственный класс представления пользовательского интерфейса для ссылки на метку и кнопку.
Затем в каждом из ваших контроллеров представления вы можете программно добавлять эти подпредставления и использовать эти ссылки для вызова функции, уникальной для вашего контроллера представления.
Пример
if let yourView = Bundle.main.loadNibNamed("yourView", owner:self, options:nil)?.first as? yourView //references your reusable custom view
yourView.yourLabel.text = "Your String Here" //change the label according to which view controller
yourView.yourButton.addTarget(self, action: #selector(ViewController.yourFunction(sender:)), for: .touchUpInside) //add function according to view controller
self.view.addSubview(yourView)
Способ 2:
Кроме того, вы можете предпочесть использовать один вид и контроллер представления вместо этого в зависимости от ваших предпочтений / функциональности. Для этого просто измените свою метку или функцию в зависимости от того, какие данные были переданы ей с использованием prepareForSegue или protocol / Delegate.